有辦法為Android中的EditText定義min和max值嗎?我想為EditText.例如:如果任何人試圖在其中輸入一個月值,則該值必須介于1-12之間。我可以用TextWatcher但我想知道在布局文件或其他地方是否有其他方法可以做到這一點。編輯:我不想限制字符計數。我想限制價值。例如,如果我限制月份EditText當我輸入12個字符時,它會接受它,但是如果我輸入了22個字符,它就不能在我進入的時候接受它。
3 回答
互換的青春
TA貢獻1797條經驗 獲得超6個贊
min==3min>=10
EditTextInputFilterMinMax
InputFilterOnFocusChangeListenerEditText
package test;import android.text.InputFilter;import android.text.Spanned;public class InputFilterMax implements InputFilter {private int max;public InputFilterMax(int max) {
this.max = max;}public InputFilterMax(String max) {
this.max = Integer.parseInt(max);}@Overridepublic CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
try {
String replacement = source.subSequence(start, end).toString();
String newVal = dest.toString().substring(0, dstart) + replacement +dest.toString().substring(dend, dest.toString().length());
int input = Integer.parseInt(newVal);
if (input<=max)
return null;
} catch (NumberFormatException nfe) { } //Maybe notify user that the value is not good return "";}}OnFocusChangeListenerMin
package test;import android.text.TextUtils;import android.view.View;import android.view.View.OnFocusChangeListener;public class OnFocusChangeListenerMin implements OnFocusChangeListener {private int min;public OnFocusChangeListenerMin(int min) {
this.min = min;}public OnFocusChangeListenerMin(String min) {
this.min = Integer.parseInt(min);}@Overridepublic void onFocusChange(View v, boolean hasFocus) {
if(!hasFocus) {
String val = ((EditText)v).getText().toString();
if(!TextUtils.isEmpty(val)){
if(Integer.valueOf(val)<min){
//Notify user that the value is not good
}
}
}}}InputFilterMaxOnFocusChangeListenerMinEditTextonFocusChangeListener.
mQteEditText.setOnFocusChangeListener( new OnFocusChangeListenerMin('20');mQteEditText.setFilters(new InputFilter[]{new InputFilterMax(getActivity(),'50')});- 3 回答
- 0 關注
- 695 瀏覽
添加回答
舉報
0/150
提交
取消
