- Fragment中可以調(diào)用getActivity()來獲取它所在的Activity究流。
- Activity可以調(diào)用 FragmentManager的FindFragmentByid()或者FindFragmentByTag()來獲取Fragment僵芹。
Activity向Fragment發(fā)送數(shù)據(jù)
-
通過Bundle包裝數(shù)據(jù)凌彬,在調(diào)用Fragment的setArguments方法發(fā)送數(shù)據(jù)給Fragment澄阳。
String str=text.getText().toString(); MyFragment5 fragment5=new MyFragment5(); Bundle bundle=new Bundle();bundle.putString("name",str); fragment5.setArguments(bundle); FragmentManager fragmentManager=getFragmentManager(); FragmentTransaction transaction=fragmentManager.beginTransaction(); transaction.add(R.id.ll_layout,fragment5,"Fragment5"); transaction.commit(); Toast.makeText(Main5.this,"向fragment發(fā)送數(shù)據(jù):"+str,Toast.LENGTH_LONG).
-
在Fragment里通過調(diào)用getArguments().get()來獲取數(shù)據(jù)姨伟。
String str=getArguments().get("name").toString(); text.setText(str); Toast.makeText(getActivity(),"已接收到:"+str,Toast.LENGTH_LONG).show();
Fragment向Activity發(fā)送數(shù)據(jù)
-
在Fragment中定義一個(gè)接口匾二,用于被Activity實(shí)現(xiàn)
public interface MyListener{ public void thank(String code); }
-
Fragment中覆寫onAttach方法
@Override public void onAttach(Activity activity) { myListener= (MyListener) activity; super.onAttach(activity); }
-
Fragment中中調(diào)用thank方法
private MyListener myListener; *********** myListener.thank(code);
-
在Activity中接口實(shí)現(xiàn)方法返回的參數(shù)就是接收到的數(shù)據(jù)
@Override public void thank(String code) { Toast.makeText(Main5.this,"已成功接收到"+code+",客氣了",Toast.LENGTH_LONG).show(); }