我需要在编辑文本文本中输入一些文本,然后必须单击软键盘的完成按钮。为此,我使用了以下代码
solo.sendKey(Solo.ENTER);
和
solo.clickOnText("Done");
但它不工作。如何使用robotium点击软键盘中的完成按钮?
我需要在编辑文本文本中输入一些文本,然后必须单击软键盘的完成按钮。为此,我使用了以下代码
solo.sendKey(Solo.ENTER);
和
solo.clickOnText("Done");
但它不工作。如何使用robotium点击软键盘中的完成按钮?
Robotium 5.0.1 有一个方法 pressSoftKeyboardNextButton,定义为:
public void pressSoftKeyboardNextButton(){
final EditText freshestEditText = viewFetcher.getFreshestView(viewFetcher.getCurrentViews(EditText.class));
if(freshestEditText != null){
inst.runOnMainSync(new Runnable()
{
public void run()
{
freshestEditText.onEditorAction(EditorInfo.IME_ACTION_NEXT);
}
});
}
}
可以应用相同的方法来使用 EditorInfo.IME_ACTION_DONE 调用完成按钮
如您所知,软键是位图,它不能使用按键控制。你可以做的是知道位置并按下位置。
实际上,您必须执行 solo.goBack() 才能关闭键盘。
你有没有尝试过?
solo.sendKey(16);
实际上,
KeyEvent.FLAG_EDITOR_ACTION
public static final int FLAG_EDITOR_ACTION
This mask is used for compatibility, to identify enter keys that are coming from an IME whose enter key has been auto-labelled "next" or "done". This allows TextView to dispatch these as normal enter keys for old applications, but still do the appropriate action when receiving them.
Constant Value: 16 (0x00000010)
无需按下完成按钮即可继续操作。在编辑文本中输入文本后,您可以给出下一条指令solo.clickOnText("submit")
或其他需要的指令。