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



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

在我的EditText中,我设置了SelectionChanged方法
我想在数字化过程中更换键盘。特别是,键盘在文本模式下启动,在数字模式下更改,然后需要在文本模式中重新运行,所以当数字板(例如: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);
}
}

当Keyboard返回到TEXT类型时,您可以看到键盘上的符号,而不是字母。你可以在这个图像中找到结果

这实际上并不受支持。没有强制更改键盘的方法,而且大多数键盘都不支持在已启动的输入连接上更改类型。没有可靠的方法可以做到这一点。setInputType只能保证在下次键盘打开int hat字段时工作。

最新更新