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/