有没有办法找到一个字符串的位置,并使用robotium点击它?

时间:2013-11-06 09:15:04

标签: android-activity ui-automation robotium android

我在Android应用程序的UI上显示以下列表,该列表显示该日期的日期和温度。

temp      degree
11/01      --.-- c
11/02      21.7  c
11/03      22.5  c

在这里,我想找到字符串"--.--"的位置,然后单击它,以便我可以更新列表。有没有办法找到字符串的位置?我知道solo.searchText()会判断字符串是否存在,但是该位置是什么?

3 个答案:

答案 0 :(得分:1)

// i think it will help you 

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {

  @Override
  public void onItemClick(AdapterView<?> parent, final View view,
      int position, long id) {
                    // TODO Auto-generated method stub
                     if(yourliststring.trim().equals("--.--"))
                                   {
                                      //your condition
                                    }
                             else
                                {    
                                     //your condition

                                    }

                 }
            });

答案 1 :(得分:0)

我不确定你需要什么位置,但是如果你需要屏幕上的位置,你可以这么做:

TextView textView = solo.getText("--.--"); // or solo.getText(Pattern.quote("--.--")); if needed
int[] xy = new int[2];
textView.getLocationOnScreen(xy);
final int viewWidth = textView.getWidth();
final int viewHeight = textView.getHeight();
final float x = xy[0] + (viewWidth / 2.0f);
final float y = xy[1] + (viewHeight / 2.0f);

这样你就有了中心的观点(x,y)。

如果您需要列表中的文本位置,您可以执行以下操作:

private int getPosition(ListView listView, String text) {
    for (int i = 0; i < listView.getAdapter().getCount(); i++) {
        Object o = listView.getAdapter.getItemAtPosition(i);
        if (o instanceof TextView) {
            if (((TextView)o).getText().toString().equals(text)) {
                return i;
            }
        }
    }
    return -1; // not found
}

你可以这样调用它(设置适当的参数):

int position = getPosition((ListView) solo.getView(ListView.class, 0), "--.--");

所有内容都是在没有测试甚至编译的情况下编写的,但主要想法应该没问题。

答案 2 :(得分:0)

我有一个简单的方法来查找并点击字符串

if(solo.searchText("--.--")){
            solo.clickLongOnText("--.--");
        }

我只需点击字符串“--.--”。