一个activity两个fragment的通信

本文介绍了一种使用接口回调的方式实现在两个Fragment之间的数据同步更新。具体步骤包括:定义监听的Fragment接口,在Activity中实现该接口,并通过上下文传递实现LeftFragment与RightFragment的数据联动更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.设接口在监听的fragment
2.activity实现接口
3.设置更新界面方法在fragment

左边改变右边也改变,用的是单例模型

1.LeftFragment 里设置接口,2.onAttach实例化接口对象,onDetach放开接口对象(mCallBacks = null),3.在要改变RightfragmentUI的地方用接口的方法

    private CallBacks mCallBacks;

    public interface CallBacks{
        void updateEdit();
    };

    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        mCallBacks = (CallBacks) context;
    }




            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                TextContent.get().setStringContent(s.toString());
                mCallBacks.updateEdit();
            }


    @Override
    public void onDetach() {
        super.onDetach();
        mCallBacks = null;
    }
}

在对应的activity里实现接口,找到要改的fragment,调用改变UI的方法

public class MainActivity extends AppCompatActivity implements LeftFragment.CallBacks
@Override
    public void updateEdit() {
        RightFragment rf = (RightFragment) getSupportFragmentManager().findFragmentById(R.id.fragment_right_container);
        rf.updateRightEditor();
    }

要改变UI的fragment写更新界面的方法

class RightFragment
public void updateRightEditor() {
        mEditRight.setText(TextContent.get().getStringContent());
    }

https://github.com/wanglianghai/A_activity_Two_fragment/commit/3d591c6286bc57667d341f7a96d46bd2f2f8a3fb?diff=unified

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值