Answers:
我猜想android:inputType="number"
XML属性。
android:inputType="phone"
代替它。但是似乎有点“忙”。
例如:
<EditText
android:id="@+id/myNumber"
android:digits="0123456789."
android:inputType="numberDecimal"
/>
0123456789.
而不是0123456780.
对于仅数字输入android:inputType="numberPassword"
,请与editText.setTransformationMethod(null);
来删除自动隐藏。
要么
android:inputType="phone"
仅输入数字,我觉得这两种方式比 android:inputType="number"
。在输入类型中提及“数字”的限制是键盘允许切换到字符,也可以输入其他特殊字符。“ numberPassword” inputType没有这些问题,因为键盘仅显示数字。甚至“电话” inputType都可以使用,因为键盘不允许您切换到字符。但是您仍然可以输入几个特殊字符,例如+,/,N等。
android:inputType =“ numberPassword ”和editText.setTransformationMethod(null);
inputType =“ phone”
inputType =“ number”
android:inputType="numberPassword"
以及editText.setTransformationMethod(null);
<EditText
android:id="@+id/age"
android:numeric="integer"
/>
使用以下内容可以更好地解决您的问题;
在xml中:
<EditText
android:id="@+id/age"
android:inputType="numberDecimal|numberSigned" />
或//在etfield.addtextchangelistener内部的活动中
private String blockCharacterSet="+(/)N,*;#";//declare globally
try {
for (int i = 0; i < s.length(); i++) {
if (blockCharacterSet.contains(s.charAt(i) + "")) {
String corrected_settempvalue = arrivalsettemp.substring(0, arrivalsettemp.length() - 1);
et_ArrivalSetTemp.setText(corrected_settempvalue);
if (corrected_settempvalue.length() != 0)
et_ArrivalSetTemp.setSelection(corrected_settempvalue.length());
}
}
} catch (Exception d) {
d.printStackTrace();
}
您可以在XML中使用它
<EditText
android:id="@+id/myNumber"
android:digits="123"
android:inputType="number"
/>
要么,
android:inputType="numberPassword" along with editText.setTransformationMethod(null); to remove auto-hiding of the number.
要么,
android:inputType="phone"
您可以以编程方式使用
editText.setInputType(InputType.TYPE_CLASS_NUMBER);
我需要赶紧使用TextWatcher在键盘上按Enter键。但是我发现所有数字键盘android:inputType =“ number”或“ numberDecimal”或“ numberPassword”等均不允许我在用户按下Enter时捕获它们。
我尝试过android:digits="0123456789\n"
,所有数字键盘都开始与Enter和TextWatcher一起使用。
所以我的方法是:
android:digits="0123456789\n"
android:inputType="numberPassword"
加 editText.setTransformationMethod(null)
感谢barmaley和abhiank。
对我来说最简单
android:numeric="integer"
虽然这也更自定义
android:digits="0123456789"