做天在写一个自定义弹出框的时候发现,自定义弹出框类B.class中按钮的触发事件需要传递A.class类中的其他参数如下:
A.class类中的监听事件:
Intent intent = new Intent(this, PayActivity.class);
Bundle args = new Bundle();
args.putSerializable("aisle", aisle);
args.putString("payType",payType);
intent.putExtras(args);
this.startActivity(intent);
所以想要在弹出框内操作并在A类中触发响应,最终想到了接口回调,模仿源码写按钮的监听事件方法。
class B {
private OnClickLister onClickListener;
....
publick interface OnClickListener{
void onClick(String tag);
}
public void setOnClickLister(OnClickLister mOnClickLister){
thi.onClickListener=mOnClickListener;
}
}
class A {
private B b;
....
b.setOnClickLister(new b.OnClickListener(){
@Override
publick void onClick(String tag){
//处理监听时间吧
Intent intent = new Intent(this, PayActivity.class);
Bundle args = new Bundle();
args.putSerializable("aisle", aisle);
args.putString("payType",payType);
intent.putExtras(args);
this.startActivity(intent);
}
});
}
好了,上面监听回调程序是在GridView的监听方法中,使用灵活,还可以使用观察者模式等方法去实现,感兴趣的同学可以尝试多种方法实现。