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

在android中,如何在EditText上显示数字键盘?,android,keyboard,android-edittext,Android,Keyboard,Android Edittext,基本上,我只想在某个EditText获得焦点后立即切换到数字键盘模式。您可以为您的: 要在Java文件中执行此操作: EditText input = new EditText(this); input.setInputType(InputType.TYPE_CLASS_NUMBER); 我发现这个实现很有用,显示了更好的键盘并限制了输入字符 <EditText android:inputType="phone" android:digits="1234567890"

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

您可以为您的:


要在Java文件中执行此操作:

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

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

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

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

myEditTxt.setInputType(InputType.TYPE_CLASS_NUMBER);
其中myEditTxt是动态编辑文本对象(名称)

您可以通过两种方式进行编辑

  • 运行时集

    EditText input = new EditText(this);
    input.setInputType(InputType.TYPE_CLASS_NUMBER);
    
  • 使用XML

    
    
  • 
    

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

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

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

    editText.setRawInputType(InputType.TYPE_CLASS_NUMBER);
    
    android:inputType="numberDecimal"
    

    在xml代码中定义它

    android:inputType="number"
    

    在java文件中使用以下代码

    editText.setRawInputType(配置键盘)


    下面的代码只允许数字“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”));
    

    还要注意的是,要使用它,您需要以Android 1.5为目标(1.1中不提供),问题是您无法切换回去。使用“数字文本”也不起作用。似乎如果你想显示数字键盘,就不能让它切换回文本。我同意Brian的观点。如果第一个字段是字母,下一个字段是数字,我就不能使用“下一步”按钮转到下一个字段!我想你能不能回去取决于电话。我的允许。我想更改keybord类型编号,我想在edittext中粘贴文本。怎么做?问题并没有明确说明希望更改允许的输入类型。它只是问如何改变键盘模式,这是我想做的,而不改变输入类型。所有答案都解释了如何更改输入类型。请检查我对这个问题的回答是否有任何方法可以通过编程实现?我渴望为我的EditText获得一个有限的数字键盘,但它的设置方式必须在活动中生成。如果您在布局xml代码中创建了EditText number1,那么如果您想将数字键盘设置为number1 EditText,您可以使用Java代码这样做。如果您手动格式化文本(如货币)想要控制键盘,那就是选择。不会过滤你的字符。谢谢这对我很有吸引力。我想在字段尚未编辑时显示文本占位符值,但仍将输入限制为数字并显示受限键盘。您应该添加注释,解释您的代码以及为什么它是解决方案您有最佳答案!!谢谢
    android:inputType="numberDecimal"
    
    android:inputType="number"
    
    EditText number1 = (EditText) layout.findViewById(R.id.edittext); 
    number1.setInputType(InputType.TYPE_CLASS_NUMBER);
    
        EditText number1 = (EditText) layout.findViewById(R.id.edittext); 
        number1.setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_CLASS_PHONE);
        number1.setKeyListener(DigitsKeyListener.getInstance("0123456789”));