【发布时间】:2020-05-15 16:00:06
【问题描述】:
我试图阻止用户在 EditText 中输入数字。其他一切都是允许的;只是不是数字。有没有办法做到这一点?
【问题讨论】:
-
使用
TextWatcher。
标签: java android android-edittext
我试图阻止用户在 EditText 中输入数字。其他一切都是允许的;只是不是数字。有没有办法做到这一点?
【问题讨论】:
TextWatcher。
标签: java android android-edittext
很简单,使用:
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
例子
<EditText android:id="@+id/edt" android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" android:layout_width="fill_parent"
android:layout_height="wrap_content" />
【讨论】:
这种方法不包括blockNumbers vairble 中定义的数字。
private EditText etSample ;
private String blockNumbers = "1234567890";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etSample = (EditText) findViewById(R.id.etSample);
etSample.setFilters(new InputFilter[] { filter });
}
private InputFilter filter = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
if (source != null && blockNumbers.contains(("" + source))) {
return "";
}
return null;
}
};
【讨论】: