Android自动化实现点击自定义Adapter类控件

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里面的序号。

你可能感兴趣的:(android,自动化)