TextWatcher也是不错的选择,但我更喜欢使用自定义过滤器。 因此,简单的方法是使用输入过滤器,并采取对飞每一个字符的控制,看下面的例子,希望这有助于
import android.text.InputFilter;
import android.text.InputType;
EditText input_moodMsg;
// initialize this edittext etc etc
//....
// here comes the filter to control input on that component
InputFilter inputFilter_moodMsg = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end,Spanned dest, int dstart, int dend) {
if (source.length()>44) return "";// max 44chars
// Here you can add more controls, e.g. allow only hex chars etc
for (int i = start; i < end; i++) {
if (!Character.isLetterOrDigit(source.charAt(i)) && !Character.isSpaceChar(source.charAt(i))
&& source.charAt(i)!='-'
&& source.charAt(i)!='.'
&& source.charAt(i)!='!'
) {
return "";
}
}
return null;
}
};
input_moodMsg.setFilters(new InputFilter[] { inputFilter_moodMsg });
input_moodMsg.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
用户setInputType()属性的EditText .. –