2

我需要在编辑文本文本中输入一些文本,然后必须单击软键盘的完成按钮。为此,我使用了以下代码

solo.sendKey(Solo.ENTER);

solo.clickOnText("Done");

但它不工作。如何使用robotium点击软键盘中的完成按钮?

4

5 回答 5

2

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 调用完成按钮

于 2014-01-28T21:07:47.953 回答
2

如您所知,软键是位图,它不能使用按键控制。你可以做的是知道位置并按下位置。

于 2012-11-09T01:03:23.550 回答
1

实际上,您必须执行 solo.goBack() 才能关闭键盘。

于 2012-10-08T12:07:22.110 回答
0

你有没有尝试过?

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)
于 2012-06-22T10:22:15.387 回答
0

无需按下完成按钮即可继续操作。在编辑文本中输入文本后,您可以给出下一条指令solo.clickOnText("submit")或其他需要的指令。

于 2013-08-07T06:44:18.410 回答