Android项目中创建了PrefrenceAcitivity应用,对于控件EditTextPreference想限制只能输入数字,找了好半天,首先
在布局中设置属性
android:inputType="number"
android:digits="0123456789"
这样是完全不行的,压根没有这样的属性。代码提示根本不会跳出来。在Design视图中在右侧Declared Attributes里面也压根无法添加。
其实实现是挺简单的如下所示:
第一步,通过key获取到这个控件。
第二步,设置OnBindEditTextListener即可。
EditTextPreference numberPreference = findPreference("number");
if (numberPreference != null) {
numberPreference.setOnBindEditTextListener(
new EditTextPreference.OnBindEditTextListener() {
@Override
public void onBindEditText(@NonNull EditText editText) {
editText.setInputType(InputType.TYPE_CLASS_NUMBER);
}
});
}