您可以在 EditText 中使用 InputFilter 限制字符为:
EditText mEdit = (EditText)findViewById(R.id.mEdit);
InputFilter[] filters = {new AdnNameLengthFilter()};
mEdit.setFilters(filters);
public static class AdnNameLengthFilter implements InputFilter
{
private int nMax;
public CharSequence filter (CharSequence source, int start, int end, Spanned dest, int dstart, int dend)
{
Log.w("Android_12", "source("+start+","+end+")="+source+",dest("+dstart+","+dend+")="+dest);
if(dest.toString()=="."||( source.toString()==".")
{
//DO SOMTHING HERE
}else
{
//DO SOMTHING HERE
}
}
}
第二个选项是TextWatcher,用于查找用户输入的字符:
mEditText = (EditText)findViewById(R.id.ET);
mEditText.addTextChangedListener(mTextWatcher);
TextWatcher mTextWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int arg1, int arg2,
int arg3) {
// YOU STRING BEFORE CHANGE
}
@Override
public void onTextChanged(CharSequence s, int arg1, int arg2,
int arg3) {
// CHARS INPUT BY USER
}
@Override
public void afterTextChanged(Editable s) {
// AFTER TEXT CCHANGE In EDITTEXT BY USER
}
};