Robotium:仅单击 alertDialog 中的文本,而不是下方 activity

Robotium: Click on text in the alertDialog only, not in the underneath activity

我有一个 activity 显示一些文本,例如 "someText"。

从这个activity,我打开一个警告对话框如下:

AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setTitle("Title");
String[] items = {"Hello", "World", "someText"};
builder.setItems(items, new MultiChoiceEventOnClickListener(...);
builder.setCancelable(true);
builder.show();

这是我的 Robotium 测试:

solo.clickOnButton(...); // to open the dialog alert
solo.waitForDialogToOpen();
solo.clickOnText("someText");

问题是 Robotium 在警告对话框下的 activity 中找到了文本。 由于 "someText" 可以在我的 activity 中的任何位置,我无法使用索引。

如何将文本的搜索范围缩小到 alertDialog? 要么 如何在警报对话框的项目列表中找到视图项目?

像这样手动搜索文本应该是可以的:

ArrayList<View> views = solo.getCurrentViews();
for(View v : views) {
   if (!v instanceof TextView) {
      //filter out everything thats not a TextView
      continue;
   }

   String text = ((TextView)v).getText().toString();
   if (text.contains("sometext") {
      //We found the view, click and then exit the loop. 
      solo.clickOnView(v);
      break;
   }
}

免责声明:由于我目前没有在我的机器上设置 Android 环境,所以我无法验证它