15

EditText で使用可能な文字「0123456789」と「セミコロン」を設定する必要があります。以下は私が使用しているコードです。

android:digits="0123456789;"
android:inputType="number|text

その実装の問題は、HTC 携帯電話ではセミコロンを入力できないことですが、Samsung と Sony Ericsson ではセミコロンを入力できます。もう 1 つの問題は、Samsung と Sony Ericsson でセミコロンを入力したときに、セミコロンを削除できないことです。上記のコードに不足しているプロパティはありますか? 前もって感謝します。

4

4 に答える 4

28

Android では、レイアウト xml を変更して android:inputType="text" を追加することで、テキスト フィールドを簡単に編集できます。これにより、数字、小数、電話、メールなどの基本的な検証を簡単に作成できます。ただし、英数字のパラメーターはありません (つまり、特殊文字はありません)。これを行うには、以下のような入力フィルターを使用し、そのフィルターで検証するフィールドをコードで設定する必要があります。この入力フィルタ

 InputFilter alphaNumericFilter = new InputFilter() {   
     @Override  
     public CharSequence filter(CharSequence arg0, int arg1, int arg2, Spanned arg3, int arg4, int arg5)  
     {  
         for (int k = arg1; k < arg2; k++) {   
             if (!Character.isLetterOrDigit(arg0.charAt(k))) {   
             return ""; 
             }   //the first editor deleted this bracket when it is definitely necessary...
         }
         return null;
     }  
 };   
 mFirstName.setFilters(new InputFilter[]{ alphaNumericFilter});   
于 2012-04-27T04:50:28.510 に答える
1

ユーザーが入力できる内容を制限するには、この質問Android: How can I validate EditText input?で説明されている TextWatcher を使用します。

いっそのこと: EditText の正規表現に基づいて選択された文字のみを許可する

于 2012-04-27T03:58:29.737 に答える
1

解決策は、これらのフィールドを変更することです: http://developer.android.com/reference/android/widget/TextView.html#attr_android:inputMethod

必要なものを適切に取得できるように、EditText の InputMethod を設定します。

于 2012-04-27T04:17:02.700 に答える
0

ここに正規表現があります

Pattern mPattern = Pattern.compile("^([1-9][0-9]{0,2})?(\\.[0-9]?)?$");
Matcher matcher = mPattern.matcher(loginNameString.toString());               
if(!matcher.find())
{
    //TODO
}
于 2015-03-15T11:25:46.317 に答える