robotium的solo类提供了solo.clickInList方法去点击listview中的某一行,但却没有方法去点击AdapterView类控件,那么怎么办呢?
方法其实非常简单,就是调用view的setSelection和requestFocus方法就可以了,那么这里以Instrumentation框架为例
/**
**传入一个AdapterView对象,我这里传入了子类
**以及列表号
**/
class ClickAdapter implements Runnable {
HorizontalListView v;
int ind;
public ClickAdapter(HorizontalListView v,int ind){
this.v = v;
this.ind = ind;
}
@Override
public void run() {
v.setSelection(ind);
v.requestFocus();
v.performClick();
}
}
那么上面定义的是一个Runnable接口实现类,用法下面这样:
getInstrumentation().runOnMainSync(new ClickAdapter(mHorizontalListView,0));
得到Instrumentation对象,调用runOnMainSync扔到主线程去执行,传入我定义的runnable对象,0表示我要点击的自定义Adapter里面的序号。