这个问题在其他地方查询过,但没有得到有效解答。在 Android 中有没有办法在焦点位于 EditText
上时显示数字软键盘,但仍允许输入任何文本?
我希望允许用户输入数量(例如“1 kg”,“2 L”),因此仅设置 inputType="number"
是不行的。
这个问题在其他地方查询过,但没有得到有效解答。在 Android 中有没有办法在焦点位于 EditText
上时显示数字软键盘,但仍允许输入任何文本?
我希望允许用户输入数量(例如“1 kg”,“2 L”),因此仅设置 inputType="number"
是不行的。
添加以下代码即可解决问题:)
editText.setRawInputType(Configuration.KEYBOARD_QWERTY);
这将首先显示数字键盘,但同时也允许您输入自由文本。
更多信息在此处。
这可能与设备相关,但您尝试过以下方法吗:
android:inputType="phone"
在EditText的xml中,这将为您提供数字键盘,但如果您想要,仍然可以切换到字母。 (至少在我的Nexus One上是这样)。
将代码编写为XML格式, android:numeric="integer"表示输入的内容必须是整数。 android:inputType="phone"表示输入的内容必须是电话号码。 android:digits="1234567890"表示输入的内容只能包含数字0到9。
看起来你要处理的根本问题是:如何让用户输入数量?
一个合适的答案是:使用数字输入框,再配合一些形式的类别选择器。例如单选按钮、下拉列表或旋转选择器。这样做可能更容易使用,也可以避免每次都需要验证输入。
你也可以拥有坚定的决心,编写自定义软键盘。
在我弄明白之前,我尝试了许多不同的组合,但这似乎可以正确地工作:
setRawInputType(InputType.TYPE_CLASS_NUMBER);
关键在于setRawInputType(int)
的描述:
直接更改文本视图的内容类型整数,而不修改任何其他状态。
inputType
或setRawInputType()
目前是不可能的。 - Richard Le Mesurier