Android アプリケーションの UI に次のリストが表示され、日付とその日の温度が表示されます。
temp degree
11/01 --.-- c
11/02 21.7 c
11/03 22.5 c
ここでは、文字列の位置を見つけて"--.--"
クリックし、リストを更新できるようにします。文字列の位置を見つける方法はありますか? solo.searchText()
文字列が存在するかどうかがわかりますが、位置はどうですか?
Android アプリケーションの UI に次のリストが表示され、日付とその日の温度が表示されます。
temp degree
11/01 --.-- c
11/02 21.7 c
11/03 22.5 c
ここでは、文字列の位置を見つけて"--.--"
クリックし、リストを更新できるようにします。文字列の位置を見つける方法はありますか? solo.searchText()
文字列が存在するかどうかがわかりますが、位置はどうですか?
// 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
}
}
});
文字列を見つけてクリックする簡単な方法があります
if(solo.searchText("--.--")){
solo.clickLongOnText("--.--");
}
文字列「--.--」をクリックするだけです。
必要な位置はわかりませんが、画面上の位置が必要な場合は、次のように簡単に実行できます。
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), "--.--");
テストもコンパイルもせずに書かれたすべてのものですが、主なアイデアは問題ないはずです。