fragment之间的通信

Posted iFat的笔记本

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了fragment之间的通信相关的知识,希望对你有一定的参考价值。

Fragment有一个公共的桥梁 Activity

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        //[1]获取Fragment的管理者
        FragmentManager fragmentManager = getFragmentManager();
        //[2]开启事物 
        FragmentTransaction transaction = fragmentManager.beginTransaction();
        //[3]动态替换
        transaction.replace(R.id.ll1, new Fragment1(),"f1");
        transaction.replace(R.id.ll2, new Fragment2(),"f2");
        
        //[4]最后一步 记得commit
        transaction.commit();
        
        
    }


}

 

public class Fragment1 extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment1, null);
        //[1]找到按钮设置点击事件 
        view.findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {

                Toast.makeText(getActivity(), "jagjajgl", 1).show();
                //[2]修改Fragment2里面textview的值 
                Fragment2 f2 = (Fragment2) getActivity().getFragmentManager().findFragmentByTag("f2");
                f2.setText("haahha");
                
            }
        });
        
        return view;
    }
}
public class Fragment2 extends Fragment {

    private TextView tView;


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment2, null);
        
        tView = (TextView) view.findViewById(R.id.tv);
        
        return view;
    }
    
    
    //修改textview值的方法
    public void setText(String content){
        tView.setText(content);
    }
}

 

以上是关于fragment之间的通信的主要内容,如果未能解决你的问题,请参考以下文章

Fragment和BaseAdapter之间的Android通信

如何使用接口在片段和活动之间进行通信?

方向改变后无法与 Fragment 正确通信

带 Hilt 的活动片段通信

如何在嵌套片段内的两个子片段之间进行通信

Android -- 每日一问:两个 Fragment 之间如何进行通信 ?