做天在寫一個自定義彈出框的時候發現,自定義彈出框類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的監聽方法中,使用靈活,還可以使用觀察者模式等方法去實現,感興趣的同學可以嘗試多種方法實現。