20 個の ListItem を含む ListView があるとします。各項目にはボタンがあり、ListView の 10 の位置にあるボタンをクリックしたいと思います。ロボティウムを介して自動化するにはどうすればよいですか?
2160 次
4 に答える
0
solo.clickInList(int line、int index)を使用してみてください
何かのようなもの:
solo.clickInList(10,0)
お役に立てれば!
于 2012-10-19T11:36:26.260 に答える
0
//First get the List View
ListView list = (ListView) solo.getView(R.id.list_view);
/* View viewElement = list.getChildAt(10);
This might return null as this item view will not be created if the 10th element is
not in the screen. (i.e. the getView would have not been called for this view).
Suppose for single item list_item.xml is used then
Get the 10th button item view as follows:*/
int i = 10 ;
View buttonItem = list.getAdapter().getView(i,getActivity().findViewById(R.layout.list_item),list);
solo.clickOnView(buttonItem);
于 2014-04-29T10:20:53.097 に答える
0
あなたが何をしようとしているのか正確にはわかりません.私の仮定では、アイテムが多すぎて画面に収まらないリストビューがあり、10番目の位置にあるボタンをクリックしたいですか? 私は正しいですか?
もしそうなら、リストビューの特定のインデックスでビューを取得するために、以前にいくつかのリストビューヘルパー関数を作成しました:
public View getViewAtIndex(final ListView listElement, final int indexInList, Instrumentation instrumentation) {
ListView parent = listElement;
if (parent != null) {
if (indexInList <= parent.getAdapter().getCount()) {
scrollListTo(parent, indexInList, instrumentation);
int indexToUse = indexInList - parent.getFirstVisiblePosition();
return parent.getChildAt(indexToUse);
}
}
return null;
}
public <T extends AbsListView> void scrollListTo(final T listView,
final int index, Instrumentation instrumentation) {
instrumentation.runOnMainSync(new Runnable() {
@Override
public void run() {
listView.setSelection(index);
}
});
instrumentation.waitForIdleSync();
}
于 2012-10-23T12:15:17.837 に答える