有没有办法在我的XML偏好设置屏幕中将EditText
设置为仅接受数字输入?
答案 0 :(得分:58)
在xml文件中:
android:inputType="number"
或在运行时:
editText.setRawInputType(TYPE_CLASS_NUMBER | TYPE_NUMBER_VARIATION_NORMAL);
http://developer.android.com/reference/android/widget/TextView.html#attr_android:inputType
答案 1 :(得分:22)
EditTextPreference
支持与EditText
相同的所有XML属性。因此,请使用android:inputType="number"
答案 2 :(得分:9)
每个人都面临这个问题,因为当我们按下ctrl +空格时,eclipse没有显示提示。
只需复制
android:inputType="number"
并粘贴。它会像魅力一样工作
答案 3 :(得分:5)
完全同意答案。但是我想在这里添加一些东西:一旦你接受了数字输入,你仍然会遇到一个错误,即当用户点击空白的EditText上的提交时。因为您很可能将输入解析为int或double或float。空白输入将引发错误。我建议您使用try catch和NumberFormatException检查错误。
答案 4 :(得分:2)
<EditTextPreference
android:inputType="phone"
android:key="phone_number"
android:summary="@string/settings_phone_number_sum"
android:title="@string/settings_phone_number" />
答案 5 :(得分:0)
我附上阅读首选项是try / catch NumberFormatException。如果异常,我返回默认值。
我发现将app从say float迁移到int类型首选项时很有用。以前的安装有浮动优先,新的安装使用int。
当然,还需要对用户输入进行验证。