【发布时间】:2011-06-06 10:01:55
【问题描述】:
我有一个EditText,我只想在其中插入整数值。谁能告诉我我必须使用哪个属性?
【问题讨论】:
我有一个EditText,我只想在其中插入整数值。谁能告诉我我必须使用哪个属性?
【问题讨论】:
将android:inputType="number" 添加为 XML 属性。
【讨论】:
android:inputType="phone" 代替它。但似乎更“忙”了一点。
例如:
<EditText
android:id="@+id/myNumber"
android:digits="0123456789."
android:inputType="numberDecimal"
/>
【讨论】:
0123456789. 而不是 0123456780.
在代码中,你可以这样做
ed_ins.setInputType(InputType.TYPE_CLASS_NUMBER);
【讨论】:
android:inputType="numberDecimal"
【讨论】:
<EditText
android:id="@+id/age"
android:numeric="integer"
/>
【讨论】:
对我来说最简单
android:numeric="integer"
虽然这也更加个性化
android:digits="0123456789"
【讨论】:
使用以下可以更好地解决您的问题;
在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();
}
【讨论】:
如果有人想在启用imeOptions 的情况下仅使用从 0 到 9 的数字,请在您的 EditText 中使用以下行
android:inputType="number|none"
这将只允许数字,如果您单击键盘的完成/下一个按钮,您的焦点将移至下一个字段。
【讨论】:
对于仅数字输入,请使用 android:inputType="numberPassword" 和 editText.setTransformationMethod(null); 来删除数字的自动隐藏。
或
android:inputType="phone"
对于只有数字输入,我觉得这几种方式比android:inputType="number"好。提到“数字”作为 inputType 的限制是键盘允许切换到字符,也允许输入其他特殊字符。 “numberPassword” inputType 没有这些问题,因为键盘只显示数字。即使是“电话”输入类型,因为键盘不允许您切换到字符。但是您仍然可以输入几个特殊字符,例如 +、/、N 等。
android:inputType="numberPassword" 与 editText.setTransformationMethod(null);
inputType="phone"
inputType="number"
【讨论】:
android:inputType="numberPassword" 和 editText.setTransformationMethod(null);
你可以在 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。
【讨论】:
我不知道 13 年的正确答案是什么,但今天是:
myEditText.setKeyListener(DigitsKeyListener.getInstance(null, false, true)); // positive decimal numbers
你得到了一切,包括屏幕键盘是一个数字小键盘。
几乎所有东西。 Espresso,以其无限的智慧,让typeText("...")莫名其妙地绕过过滤器进入垃圾……
【讨论】:
.Q,因为我们的项目不是大众市场
试试下面的代码:
Edittext_name.setKeyListener(DigitsKeyListener.getInstance("0123456789"));
它将允许您只输入数字。不能输入字符。
如果您想输入字符而不是数字,您可以编辑 getInstance 内引号之间的值。
【讨论】: