这已在网上其他地方询问无济于事。Android 中有什么方法可以在关注 时显示数字软键盘EditText
,但仍然允许输入任何文本?
我想让用户输入数量(例如“1 kg”、“2 L”),所以仅设置是inputType="number"
行不通的。
这已在网上其他地方询问无济于事。Android 中有什么方法可以在关注 时显示数字软键盘EditText
,但仍然允许输入任何文本?
我想让用户输入数量(例如“1 kg”、“2 L”),所以仅设置是inputType="number"
行不通的。
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.
这可能取决于设备,但您是否尝试过:
android:inputType="phone"
在 EditText 的 xml 中,这为您提供了数字键盘,但您仍然可以根据需要切换到字母。(至少在我的 Nexus One 上)。
注意: setRawInputType(InputType.TYPE_CLASS_NUMBER);
对某些设备有预期的效果,但对其他设备没有...
在 htc 上它工作正常,但在 Galaxy Tab II 上,您只能使用数字键盘,无法切换回 alpha。
用 XML 编写代码,android:numeric="integer" android:inputType="phone" android:digits="1234567890"
看起来您正在处理的基本问题是:我怎样才能允许用户输入数量?
一个合适的答案是:使用数字输入,与某种形式的单元类别选择配对。例如收音机、下拉菜单或微调器。这可能更容易使用,也让您不必担心每次都必须验证您的输入。
您也可以只使用铁 cojones 并编写自定义软键盘。
在弄清楚这一点之前,我尝试了许多不同的组合,但这似乎可以正常工作:
setRawInputType(InputType.TYPE_CLASS_NUMBER);
关键在于setRawInputType(int)
:
直接更改文本视图的内容类型整数,无需修改任何其他状态。