android回调的用法

主要内容:要实现activity和fragment的通讯。(回调)
今天主要遇到的问题就是点击activity中的控件,在fragment中实现操作。这里写图片描述
即如图所示:图中的发送是activity中的,而心情签到和心情语录是两个fragment。现在的需求是点击发送将心情签到的内容发送到心情语录中去。
先上代码:

1.先定义一个接口

 public interface OnActivityInteractionListener {
        void onActivityInteraction();
    }

2.设置监听方法

public void setSendListener(OnActivityInteractionListener onActivityInteractionListener) {
        this.onActivityInteractionListener = onActivityInteractionListener;
    }

3.在发送的点击事件中调用监听的方法

sign_send_info.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View view) {
                                //第三步:在点击事件调用监听接口的方法
                                if (onActivityInteractionListener != null) {
                                    onActivityInteractionListener.onActivityInteraction();
                                } else {
                                    Toast.makeText(SignActivity.this, "onActivityInteractionListener is null", Toast.LENGTH_SHORT).show();
                                }
                            }
                        });

以上都是在activity中做的操作。
4.在fragment中实现这个接口,并重写方法和注册监听。
(1).实现

public class SignNewFragment extends BaseFragment implements SignActivity.OnActivityInteractionListener

(2).重写方法(在方法中写出你想要进行的操作)

 @Override
public void onActivityInteraction() {
        onCreatData();    
}

(3).注册监听

((SignActivity) getActivity()).setSendListener(this);

这样就完成了监听回调。
最后写出完成回调的步骤:
1.确认监听和被监听者(即需要点击操作的是被监听者,在这里即点击发送为被监听者),在被监听者中进行以下的操作。
2.在被监听者中定义接口,设置相关的监听,并在点击事件调用监听接口的方法。
3.在监听者中实现被监听者的接口,并重写方法和注册监听。
这样回调就完成了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值