0

我在一个 android 应用程序的 UI 上显示了以下列表,该列表讲述了该日期的日期和温度。

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

在这里我想找到字符串的位置"--.--"然后点击它,这样我就可以更新列表了。有没有办法找到字符串的位置?我知道这solo.searchText()会告诉字符串是否存在,但是位置呢?

4

3 回答 3

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

                                    }

                 }
            });
于 2013-11-06T11:12:30.360 回答
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), "--.--");

所有的东西都没有测试甚至编译,但是主要思想应该没问题。

于 2013-11-06T17:20:00.787 回答
0

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

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

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

于 2013-11-07T07:08:47.443 回答