Android 以数字形式打开键盘,不添加InputType.TYPE\u CLASS\u编号

Android 以数字形式打开键盘,不添加InputType.TYPE\u CLASS\u编号,android,android-softkeyboard,Android,Android Softkeyboard,我们一直在尝试实现一种方法,让软键盘先打开数字键,而不说编辑文本是数字 这可能吗?如果是,怎么做 editText btw是动态添加的,因此无法对XML文件进行更改您可以通过编程方式设置输入类型 EditText editText=new EditText(this); editText.setInputType(InputType.TYPE_CLASS_NUMBER); 编辑 您可以使用InputFilters public class NumericInputFilter implem

我们一直在尝试实现一种方法,让软键盘先打开数字键,而不说编辑文本是数字

这可能吗?如果是,怎么做


editText btw是动态添加的,因此无法对XML文件进行更改

您可以通过编程方式设置输入类型

 EditText editText=new EditText(this);
 editText.setInputType(InputType.TYPE_CLASS_NUMBER);
编辑 您可以使用InputFilters

public class NumericInputFilter implements InputFilter {
String regEx = new String("^[0-9]+$")


@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart,
                           int dend) {
    if (source != null && !source.toString().matches(regEx) && !source.toString().equals( "")) {

        return "";
    }
    return source;
}

在editText上,
editText.setFilters(new InputFilter[]{new NumericiInputFilter()})

如果我们设置editText,例如
editTextField.setRawInputType(配置.键盘\u QWERTY)


它将首先打开一个带有数字的键盘,让我选择普通键盘并输入字母。

构建自己的键盘运行时,您也可以将输入类型设置为
Edittext
。editText.setInputType(InputType.TYPE_CLASS_NUMBER)不起作用(我尝试的第一件事)editText如果我这样做,它将不接受字母这与你的问题完全矛盾。如果要在键入过程中更改
InputType
,请使用
TextWatcher
。我不确定这是否是一个好方法。取决于具体情况,例如,假设编辑文本的第一部分是数字,最后是字母,以数字形式启动键盘是非常有意义的,因此用户不需要再更改为数字,然后再改为字母,如果我的英语不好,我想说“打开第一个数字键而不说那是一个数字”就意味着我需要什么hehe:你读了我问的问题了吗?打开键盘时不要说EditText是数字,这样做,它将不会只接受字母和数字。当您不再需要限制时,可以删除输入筛选器。Ty要尝试一下:DNop,带字母的键盘先打开,我需要先打开带数字的键盘