如何在 EditText 上默认使用数字键盘而不强制输入数字?
这个问题已经在网上其他地方询问过了,没有结果。 Android 中是否有任何方法可以在聚焦于 EditText
时显示数字软键盘,但仍允许输入任何文本?
我想让用户输入数量(例如“1 kg”、“2 L”),因此仅设置 inputType="number"
是行不通的。
This has been asked elsewhere online to no avail. Is there any way in Android to display the numeric soft keyboard when focusing on an EditText
, but still allow any text to be entered?
I'd like to let the user enter quantities (e.g. "1 kg", "2 L"), so just setting inputType="number"
won't work.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
添加以下代码行,它就会起作用:)
editText.setRawInputType(Configuration.KEYBOARD_QWERTY);
这将首先显示数字键盘,但也允许您输入自由文本。
更多信息请点击此处。
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.
这可能取决于设备,但您是否尝试过:
所有输入类型链接
EditText 的 xml ,这为您提供了数字键盘,但如果您愿意,您仍然可以切换到字母键盘。 (至少在我的 Nexus One 上)。
This may be device dependant but have you tried:
All Input Types Link
in the EditText's xml , this gives you the number pad keyboard but then you can still switch to letter's if you want. (Atleast on my Nexus One).
需要注意的是:setRawInputType(InputType.TYPE_CLASS_NUMBER);
在某些设备上有预期的效果,但在其他设备上则不然……
在 htc 上它工作正常,但在 Galaxy Tab II 上你只能得到数字键盘,无法切换回 alpha。
Note that: setRawInputType(InputType.TYPE_CLASS_NUMBER);
has the desired effect on some devices but not others...
On htc it works fine however on galaxy tab II you only get the numeric keyboard and no way to switch back to alpha.
用 XML 编写代码,
机器人:数字=“整数”
android:inputType="电话"
安卓:数字=“1234567890”
write the code in XML,
android:numeric="integer"
android:inputType="phone"
android:digits="1234567890"
看起来您正在处理的根本问题是:如何允许用户输入数量?
一个合适的答案是:使用数字输入,与为单位选择的某种形式的类别配对。例如收音机、下拉菜单或微调器。这可能更容易使用,并且还可以让您免去每次都必须验证输入的麻烦。
您也可以只使用铁壳并编写自定义软键盘。
It looks like the underlying question you're dealing with is: how can I allow the user to enter quantities?
One appropriate answer is: with a numeric input, paired with some form of category select for the unit. e.g. radio, dropdown, or spinner. This is probably easier to use and also saves you the headache of having to validate your input every time.
You could also just have iron cojones and write a custom soft keyboard.
在弄清楚这一点之前,我尝试了许多不同的组合,但这似乎工作正常:
关键在于
setRawInputType(int)
:I tried many different combinations before I figured this out, but this appears to work correctly:
The key lies in the description for
setRawInputType(int)
: