我有问题,当在装有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
答案 0 :(得分:0)
这实际上不受支持。没有强制更改键盘的方法,并且大多数键盘不支持在已启动的输入连接上更改类型。没有可靠的方法来执行此操作。仅在下次在int hat字段中打开键盘时,才保证setInputType可以工作。