美文网首页
【Android 进阶】 Android 回调理解

【Android 进阶】 Android 回调理解

作者: dongbingliu | 来源:发表于2017-06-17 10:26 被阅读106次
    image.png

    Android 事件处理方法:

    1. 监听事件
    2. 回调事件

    阅读过不少关于回调事件文章,每次理解一点点,但在实际项目中不能灵活运用
    项目中负责“设置”开发,考虑到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 是一个很好的回调事件:

    1. Activity implement OnClickListener;

    2. Button 注册回调;

    mButton.setOnChickListener(this);
    
    1. 必须实现接口的方法:
     public void onClick(View v) {
        //  doWork();
    }
    

    相关文章

      网友评论

          本文标题:【Android 进阶】 Android 回调理解

          本文链接:https://www.haomeiwen.com/subject/lkvvqxtx.html