如何在 EditText 上默认使用数字键盘而不强制输入数字?

发布于 2024-11-10 06:30:16 字数 175 浏览 0 评论 0原文

这个问题已经在网上其他地方询问过了,没有结果。 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

随梦而飞# 2024-11-17 06:30:16

添加以下代码行,它就会起作用:)

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.

与酒说心事 2024-11-17 06:30:16

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

 android:inputType="phone"

所有输入类型链接

EditText 的 xml ,这为您提供了数字键盘,但如果您愿意,您仍然可以切换到字母键盘。 (至少在我的 Nexus One 上)。

This may be device dependant but have you tried:

 android:inputType="phone"

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).

遗失的美好 2024-11-17 06:30:16

需要注意的是: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.

橪书 2024-11-17 06:30:16

用 XML 编写代码,
机器人:数字=“整数”
android:inputType="电话"
安卓:数字=“1234567890”

write the code in XML,
android:numeric="integer"
android:inputType="phone"
android:digits="1234567890"

扛起拖把扫天下 2024-11-17 06:30:16

看起来您正在处理的根本问题是:如何允许用户输入数量?

一个合适的答案是:使用数字输入,与为单位选择的某种形式的类别配对。例如收音机、下拉菜单或微调器。这可能更容易使用,并且还可以让您免去每次都必须验证输入的麻烦。

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

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.

毁虫ゝ 2024-11-17 06:30:16

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

setRawInputType(InputType.TYPE_CLASS_NUMBER);

关键在于 setRawInputType(int)

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

I tried many different combinations before I figured this out, but this appears to work correctly:

setRawInputType(InputType.TYPE_CLASS_NUMBER);

The key lies in the description for setRawInputType(int):

Directly change the content type integer of the text view, without
modifying any other state
.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文