如何在 android 的 EditText 上显示数字键盘?

Posted

技术标签:

【中文标题】如何在 android 的 EditText 上显示数字键盘?【英文标题】:How do I show the number keyboard on an EditText in android? 【发布时间】:2010-11-10 07:31:21 【问题描述】:

我只是想在某个 EditText 获得焦点后立即切换到数字键盘模式。

【问题讨论】:

该问题并未明确说明希望更改允许的输入类型。它只是询问如何在不更改输入类型的情况下更改我想要做的键盘模式。所有答案都说明了如何更改输入类型。 查看我对这个问题的回答***.com/questions/39593324/… 【参考方案1】:

您可以为您的EditText 配置inputType

<EditText android:inputType="number" ... />

【讨论】:

另请注意,您需要以 Android 1.5 为目标才能使用此功能(在 1.1 中不可用) 问题是不能切换回来。使用“数字|文本”也不起作用。看来如果你想显示一个数字键盘,你不能让它切换回文本。 我同意 Brian 的观点。如果第一个字段是字母,下一个字段是数字,我无法使用“下一步”按钮转到下一个字段! 能不能回去看电话我觉得。我的允许。 我想更改键盘类型号,我想在edittext中粘贴文本。怎么办?【参考方案2】:

在 Java 文件中执行此操作:

EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER);

【讨论】:

【参考方案3】:

我发现这个实现很有用,显示了更好的键盘并限制了输入字符。

<EditText
    android:inputType="phone"
    android:digits="1234567890"
    ...
/>

此外,您可以使用android:maxLength 来限制数字的最大数量。

以编程方式执行此操作:

editText.setInputType(InputType.TYPE_CLASS_PHONE);

KeyListener keyListener = DigitsKeyListener.getInstance("1234567890");
editText.setKeyListener(keyListener);

【讨论】:

有没有办法以编程方式做到这一点?渴望为我的 EditText 获得数量有限的键盘,但它的设置方式必须在 Activity 中生成。【参考方案4】:
<EditText
    android:layout_
    android:layout_
    ...
    android:inputType="number|phone"/> 

将大数字键盘显示为拨号器。

【讨论】:

【参考方案5】:

你可以通过两种方式做到这一点

    运行时集

    EditText input = new EditText(this);
    input.setInputType(InputType.TYPE_CLASS_NUMBER);
    

    使用 XML

    <EditText
        ...
        android:inputType="number" />
    

【讨论】:

【参考方案6】:

如果您需要小数,那么这就是您的答案:

android:inputType="numberDecimal"

【讨论】:

【参考方案7】:

如果您在对话框中使用 EditText 或动态创建并且您无法从 xml 设置它,那么此示例将帮助您在使用动态编辑文本等时设置该类型的键盘

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);

其中 myEditTxt 是动态 EDIT TEXT 对象(名称)

【讨论】:

【参考方案8】:
editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);

【讨论】:

如果您手动设置文本格式(例如货币格式)并且只想控制键盘,那就是选择。不会过滤你的字符。谢谢! 这对我来说就像一个魅力。我想在尚未编辑字段时显示文本占位符值,但仍将输入限制为数字并显示受限键盘。【参考方案9】:

在java文件中使用下面的代码

editText.setRawInputType(Configuration.KEYBOARD_QWERTY);

【讨论】:

你有最好的答案!!谢谢【参考方案10】:

以下代码将只允许数字“0123456789”,即使您不小心输入了“0123456789”以外的数字,编辑文本也不会接受。

    EditText number1 = (EditText) layout.findViewById(R.id.edittext); 
    number1.setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_CLASS_PHONE);
    number1.setKeyListener(DigitsKeyListener.getInstance("0123456789”));

【讨论】:

您应该添加注释来解释您的代码以及为什么它是解决方案【参考方案11】:

更多输入类型和详细信息在谷歌网站上找到here

【讨论】:

【参考方案12】:

在你的 xml 代码中定义它

android:inputType="number"

【讨论】:

【参考方案13】:
EditText number1 = (EditText) layout.findViewById(R.id.edittext); 
number1.setInputType(InputType.TYPE_CLASS_NUMBER);

【讨论】:

如果您在布局xml代码中创建了EditText number1,那么如果您想将数字键盘设置为number1 EditText,您可以使用Java代码这样做。

以上是关于如何在 android 的 EditText 上显示数字键盘?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 android 小部件 EditText 中添加水印?

如何在android中将EditText提示创建为带有图像的文本

如何在android中动态添加edittext?

如何在android中动态增加EditText的大小?

如何在 android 中动态更改 EditText 小部件的文本大小?

如何在 android 中删除 EditText 材料设计底线?