Android 事件处理方法:
- 监听事件
- 回调事件
阅读过不少关于回调事件文章,每次理解一点点,但在实际项目中不能灵活运用
项目中负责“设置”开发,考虑到activity 与 dialog 通讯,Google 反馈使用“回调机制处理”
再此记录回调机制使用方案,方便下次参考使用:
1.定义回调接口
public interface IDialogClickListener {
public void doPositiveClick();
public void doNegativeClick();
}
2.dialog 提供触发条件方法;
private IDialogClickListener mListener;
@Override
public void onClick(View v) {
if (v.getId() == R.id.dialog_confirm_btn) {
if (mListener!=null) {
mListener.doPositiveClick();
}
}else if (v.getId() == R.id.dialog_cancel_btn) {
if (mListener!=null) {
mListener.doNegativeClick();
}
}
dismiss();
}
public void setListener(IDialogClickListener mListener) {
this.mListener = mListener;
}
3. Activity 中注册并提供回调实现
//Activity 集成自定义接口
public class ApplyBetaActivity extends Activity implements IDialogClickListener
dialog=new ApplyBetaDialog(ApplyBetaActivity.this,isBetaPassed);
//dialog 注册回调事件;
dialog.setListener(this);
// Dialog 中 按确定键时回调此方法
@Override
public void doPositiveClick() {
loadPageApplyBetaDta(APPLY_BETA_CHECK);
}
// Dialog 中 按取消键时回调此方法
@Override
public void doNegativeClick() {
loadPageApplyBetaDta(APPLY_BETA_ADD);
}
为了便于理解,Android 中Button 是一个很好的回调事件:
-
Activity implement OnClickListener;
-
Button 注册回调;
mButton.setOnChickListener(this);
- 必须实现接口的方法:
public void onClick(View v) {
// doWork();
}
网友评论