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
}
}
}}}
mQteEditText.setOnFocusChangeListener( new OnFocusChangeListenerMin('20');mQteEditText.setFilters(new InputFilter[]{new InputFilterMax(getActivity(),'50')});