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之间的通信的主要内容,如果未能解决你的问题,请参考以下文章