我正在开发一个包含Android输入法的辅助功能服务。重要的是要知道它不是应用程序(活动、视图等)的一部分。
使用某个命令,当我键入字母时,我希望停止在editText上书写。
我使用inputConnection将此行为的操作发送到编辑器,操作为:IME_action_DONE
//Inside public class myIME extends InputMethodService
boolean res = false;
InputConnection inputCon = getCurrentInputConnection();
if (null != inputCon)
{
res = inputCon.performEditorAction(EditorInfo.IME_ACTION_DONE);
//res = true, action executed but wrong behavior
}
由于未知的原因,行为是焦点将始终转到视图中的下一个元素,就像IME_ACTION_next的行为一样。
即使我这样做,这也会起到同样的作用:
inputCon.performEditorAction(987654321); //No existing action ID
问题是,为什么?
您是否尝试将以下内容添加到xml文件中的EditText
android:imeOptions="actionDone"
我有一个包含多个EditText的Layout,并且正在使用自定义键盘。调用"inputCon.performEditorAction(EditorInfo.IME_ACTION_DONE);"是我在输入文本后隐藏键盘的唯一方法。焦点停留在上次编辑的EditText上(光标闪烁,但未显示键盘)。