2015 –11 – 09 回调接口的用法步骤
例如需求:在ListView的Adapter中,将getView的position值传入Activity中,如下:
首先,我们定义一个接口(需要用到什么类型值,就给传什么类型):
public interface MyListener{
public void callBack( int position );
}
接着,我们在Adapter里定义成员变量MyListener listener,并传入构造
public class MyAdapter extends BaseAdapter{
public voidsetMyListener(Context c,List<?> list,MyListener listener ){
……
this.listener= listener;
}
}
然后,假如需求是点击TextView时,将position传入Activity中,那么我们在getView中在textView.setOnClickListener中,调用listener.callBack(position ),将getView的position传入。
public View getView( int position,ViewconvertView,ViewGroup parent ){
......
textView.setOnClickListener(new OnClickListener(){
public voidonClick( View v ){
listener.callBack( position);
}
});
}
最后,在Activity中,实现MyListener接口,在new MyAdaper( this,list,this )时,将接口this传入。打印输出,此时Activity中的position就是回调过来的了。
publicvoid callBack( int position ){
Log.e( “ AAA ” ,” activity中的position = ”+ position );
}