-1

これらのような浮動小数点数のみをテキストフィールドに有効な浮動小数点数のみを許可する方法

2.353 -2.354 4444.45

4

4 に答える 4

2

フィールドにフォーカス リスナーを実装します。フォーカスがテキストフィールドからフォームの他の部分に変わったら、単純に正規表現を使用して入力の有効性を確認してください。

何かのようなもの :

^(-)?\d*(\.\d*)?$

トリックを行う必要があります。

次に、Android のパターン マッチングを使用して、入力が regexp と一致するかどうかを確認します。

Pattern p = Pattern.compile("^(-)?\d*(\.\d*)?$");
Matcher m = p.matcher(inputString);
if (m.find()) { 
    ////Found
}
else {
  //Not found
}

ただし、ローカル設定に注意してください...たとえば、フランスでは、小数点を区切るために使用されるドット (.) は、実際にはコンマ (,) です。

于 2012-04-13T09:04:10.737 に答える
0

これを実現するには、 OnFocusChangeListenerを使用します。

//value pool
final String[] check = new String[]{"2.353","-2.354","4444.45"};

 yourEditText.setOnFocusChangeListener(new OnFocusChangeListener() {

        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            String s = ((EditText)v).getText().toString().trim();

            for(String tmp : check){
                if(!TextUtils.isEmpty(s) && s.equals(tmp)){
                    //it ok
                    break;
                }
                else{
                    //do something
                }
            }
        }
    });
于 2012-04-13T08:51:56.297 に答える
-1
android:inputType="numberDecimal|numberSigned"
于 2014-04-03T05:27:59.230 に答える
-1

編集テキスト用android:inputType="number"

結果の文字列を整数に変換します (例: Integer.parseInt(myEditText.getText().toString())`)。

于 2012-04-13T08:54:22.603 に答える