Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 换键盘_Java_Android - Fatal编程技术网

Java 换键盘

Java 换键盘,java,android,Java,Android,我想知道是否有可能在一定数量的字符后更改键盘类型(例如XYZ123-键盘应在Z后更改为数字)。很抱歉,如果这是一个重新发布,但我找不到类似的内容。您可以创建两个不同的布局,一个用于数字,一个用于纯文本,或者反之亦然。据我所知,除非移动“光标”,否则无法直接更改键盘对于X个字符之后的下一个布局您应该使用addTextChangedListener,例如 yourEditText.addTextChangedListener(new TextWatcher() {

我想知道是否有可能在一定数量的字符后更改键盘类型(例如XYZ123-键盘应在Z后更改为数字)。很抱歉,如果这是一个重新发布,但我找不到类似的内容。

您可以创建两个不同的布局,一个用于数字,一个用于纯文本,或者反之亦然。据我所知,除非移动“光标”,否则无法直接更改键盘对于X个字符之后的下一个布局

您应该使用
addTextChangedListener
,例如

 yourEditText.addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(String string, int i, int i1, int i2) {}

                @Override
                public void onTextChanged(String string, int i, int i1, int i2) {

                     if(string.contains("Z")){

                        yourEditText.setInputType(InputType.TYPE_CLASS_NUMBER);

                     }
                }

                @Override
                public void afterTextChanged(Editable editable) {}
            });

非常感谢,这正是我一直在寻找的:))谢谢兄弟,如果它能帮你给一个加号的话。我想,但不能,因为我的水平(或其他原因):/这可能适用于一些键盘,但不太可能适用于大多数键盘。不能保证给定的键盘应用程序会显示任何特定输入类型的任何特定键集。如果输入类型在程序中更改(事实上,这会损坏许多键盘),他们也不能保证更改。