1

ユーザーにテキストフィールドに数字のみを入力してほしい画面があります。私はすでにAndroidでテンキーを強制的に開き、ASCII値に基づいて数字を検出しています。

KeyCode.NUMBER_PAD_Xを使用してテンキーのキー押下を検出しないようにすることを検討しています。これはAPI11以降の機能にすぎず、同様の機能とのより高い互換性を求めています。同様に、()+-/#、のような特殊文字を検出します。API11以降の組み込み関数です。

Android 3.0 / API 11より前の一部のAndroidスマートフォンでは、テンキー/電話パッドにも特殊文字があり、APIはそれを無視しません。G2では、一部の特殊文字のみが無視されますが、()+-/#をEditTextフィールドに入力できます。文字キャッチャーは、これらの入力がその条件の範囲外であっても、これらの入力に気づきません。 API11レベルのKeyCodeを使用して明示的に検出することはできません

それらを検出する方法に関する解決策はありますか?

ユーザーがそれらを入力でき、テキストフィールドに表示されるのは問題ですが、私のコードではそれらを検出せず、デバッガーに登録しません。これは、文字列の長さを現在チェックしている他のエラー処理条件を台無しにします。ユーザーは、これらの文字で文字列をオーバーフローさせる可能性があります。

4

1 に答える 1

2

EditText で android:digits を使用して、ビューが受け入れる値を制限できます。例えば:

android:digits="0123456789"

数字のみ受け付けます。キーボードには引き続き他のキーが含まれますが、許可したキーのみが実際に受け入れられます。

于 2011-03-27T01:12:32.093 に答える