三星android 8和8.1-以编程方式更改键盘

时间:2018-07-23 15:43:54

标签: java android samsung-mobile android-8.0-oreo android-8.1-oreo

我有问题,当在装有Android 8.0的Samsung S9和其他装有Android 8.0或8.1的三星上以编程方式更改键盘时
在经过Android 8.0或8.1测试的华为或其他手机上,我没有任何问题。

在我的EditText中,我设置了onSelectionChanged方法。
我想在数字化过程中更换键盘。 特别是,键盘从文本模式开始,在数字模式下更改,然后需要在文本模式下重新调谐,因此当输入数字盘(例如:AA123BB)时,您会变得很容易

@Override
    protected void onSelectionChanged(int selStart, int selEnd) {
        super.onSelectionChanged(selStart, selEnd);     
            if (selEnd > 1 && selEnd < 5) {
                if(getInputType() != InputType.TYPE_CLASS_NUMBER )
                    setInputType(InputType.TYPE_CLASS_NUMBER);
            } else {
                if(getInputType() != (InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS ) )
                    setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
            }
}

当“键盘”返回“文本”类型时,可以看到键盘符号而不是字母。 You can find the result in this image

1 个答案:

答案 0 :(得分:0)

这实际上不受支持。没有强制更改键盘的方法,并且大多数键盘不支持在已启动的输入连接上更改类型。没有可靠的方法来执行此操作。仅在下次在int hat字段中打开键盘时,才保证setInputType可以工作。