关于回调,之前纠结了好久,也看了不少文章.但是一直似懂非懂。今天豁然开朗,回调其实挺简单的。 假如A调用B的方法,那么在B方法中定义一个接口,然后在B中写一个共有的方法,参数是我们定义的接口。
定义接口:这个接口中的position就是我们要返回的内容
public interface listener {
void data(int position);
}
然后再在B中声明接口,并写一个共有的方法,参数的类型是接口
private listener listtener;
public void setlistener(listener lis) {
this.listtener = lis;
}
这样在B中就实例了这个接口 ,再在合适的时候,调用接口中的data方法,这个position就是我们需要的内容
int position = pointToPosition((int) x, (int) y);
listtener.data(position);
我们现在在A中调用这个接口,调用方式跟对button设置点击事件是一样的
dflv.setlistener(new listener() {
@Override
public void data(int position) {
MainActivity.this.position = position;
}
});
这样我们就可以获得B中点击时的这个position了。
希望对大家能有点帮助,如果一下子没看懂也不要着急,多看看别人的博客,厚积薄发。