39

这已在网上其他地方询问无济于事。Android 中有什么方法可以在关注 时显示数字软键盘EditText,但仍然允许输入任何文本?

我想让用户输入数量(例如“1 kg”、“2 L”),所以仅设置是inputType="number"行不通的。

4

6 回答 6

33

Add the following line of code, and it will do the trick :)

editText.setRawInputType(Configuration.KEYBOARD_QWERTY);

This will show the the numeric keypad first, but also allows you to enter free text.

More information here.

于 2012-01-08T09:14:47.793 回答
8

这可能取决于设备,但您是否尝试过:

 android:inputType="phone"

所有输入类型链接

在 EditText 的 xml 中,这为您提供了数字键盘,但您仍然可以根据需要切换到字母。(至少在我的 Nexus One 上)。

于 2011-05-27T15:00:23.210 回答
7

注意: setRawInputType(InputType.TYPE_CLASS_NUMBER);

对某些设备有预期的效果,但对其他设备没有...

在 htc 上它工作正常,但在 Galaxy Tab II 上,您只能使用数字键盘,无法切换回 alpha。

于 2013-01-21T12:24:14.337 回答
4

用 XML 编写代码,android:numeric="integer" android:inputType="phone" android:digits="1234567890"

于 2011-07-13T01:47:25.483 回答
2

看起来您正在处理的基本问题是:我怎样才能允许用户输入数量?

一个合适的答案是:使用数字输入,与某种形式的单元类别选择配对。例如收音机、下拉菜单或微调器。这可能更容易使用,也让您不必担心每次都必须验证您的输入。

您也可以只使用铁 cojones 并编写自定义软键盘。

于 2012-04-28T05:52:02.170 回答
-1

在弄清楚这一点之前,我尝试了许多不同的组合,但这似乎可以正常工作:

setRawInputType(InputType.TYPE_CLASS_NUMBER);

关键在于setRawInputType(int)

直接更改文本视图的内容类型整数,无需修改任何其他状态

于 2012-11-07T20:14:15.417 回答