谈谈Android中的回调

我这里主要是采用Fragment和Fragment或是Activity之间的通信来举例子如何使用回调。当然,还有其他多种方式,如EventBus等。

举例一:

Activity需要在Fragment数据加载成功之后,显示某个控件。
步骤:
1.单独定义一个接口:

public interface CallBack {

   void updateView(boolean isSuccess);

}

2 .在Activity中 implements CallBack 。重写updateView:

 @Override
    public void updateView(boolean isSuccess) {
       //根据isSuccess,activity做相应逻辑
    }

3.在Fragment中拿到Activity的引用,在获取数据成功之后,调用Activity的updateView方法

                mCallBack = (CallBack) getActivity();

                if (entity.isSuccess()) {
                    mCallBack.updateView(true);
                }else{
                    mCallBack.updateView(false);
                }

举例二:

如果一个例子不够,那就再来一个吧。
一个Activity中有Fragment A 和Fragment B, 如何将A中的数据传递给B呢?方法有多种,我们再次用回调来做。

  1. 在A中定义一个Listener:
public interface OnGetDataCompletedListener {

        void onGetDataCompleted(Entry entry);
    }


    public void setOnGetDataCompletedListener(OnGetDataCompletedListener mListener) {
        this.mListener = mListener;
    }

2.在需要将数据传递出去的业务逻辑处调用

                    if(mListener!=null){
                            mListener.onGetDataCompleted(entity);
                        }

3.Activity中能够拿到Fragment A的引用

 A.setOnGetDataCompletedListener(new A.OnGetDataCompletedListener() {
            @Override
            public void onGetDataCompleted(Entry entry) {
                B.setViewData(entry);
            }
        });

4.B中提供setViewData()方法,更新自己的逻辑:

 public void setViewData(Entry entry) {
      // todo
    }

这个过程就是:A将数据传递给Activity, Activity再调用B中的方法,将B所需要的数据传递过去。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值