一个activity两个fragment的通信

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

你可能感兴趣的:(一个activity两个fragment的通信)