0

textchange リスナーを持つ edittext があります。リスナーでは、ユーザーの入力が最小値と最大値の境界内にあるかどうかをテストしたい場所にあるかどうかをテストします。

valueText.addTextChangedListener(new TextWatcher() {
    String backup = "0";

    public void onTextChanged(CharSequence s, int start, int before, int count) {
        if (count > 0 && !s.equals(backup)) {
            if (Integer.parseInt(s.toString()) > getMaximum()) {
                valueText.setText(backup);
            }
        }
    }

    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        backup = s.toString();
    }

    public void afterTextChanged(Editable s) {
    }
});

現時点ではこれがありますが、textchange イベントを「キャンセル」して、値が最大値を超えたときに何も起こらないようにする簡単な方法はありますか?

または、最小入力と最大入力を設定できる inputfilter を使用できますか?

どうも :)

編集: ここで解決策を見つけました: http://tech.chitgoks.com/2011/06/27/android-set-min-max-value-an-edittext-accepts/

4

3 に答える 3

0
 InputFilter.LengthFilter mLenthFilter=new InputFilter.LengthFilter(25); // pls define yr max length mine was 25.
        valueText.setFilters(new InputFilter[]{mLenthFilter});
于 2012-09-10T15:07:24.390 に答える
0

EditText XML定義でandroid:maxLengthを使用できます。

于 2012-09-10T14:50:26.763 に答える
0

http://tech.chitgoks.com/2011/06/27/android-set-min-max-value-an-edittext-accepts/、これを使用して、編集テキストの最小値と最大値を設定できます。

于 2012-09-11T06:48:43.877 に答える