1.在MainActivity類別最外面建立
Map<String, String> map = new HashMap<String, String>();
傳遞String參數
2.建立一個getMap()方法
public Map getMap()
{
return map;
}
3.在A Fragment.java取得MainActivity 的Map
MainActivity activity = (MainActivity)getActivity();
Map map = activity.getMap();
map.put("KEY_HEIGHT",fieldheight.getText().toString());
map.put("KEY_WEIGHT",fieldweight.getText().toString());
4.在B Fragment宣告下面成員變數
private MainActivity activity ;
private Map<String,String> map ;
String heightData ;
String weightData ;
5.取得資料map.get(key);
activity = (MainActivity)getActivity();
map = activity.getMap();
heightData = map.get("KEY_HEIGHT");
weightData = map.get("KEY_WEIGHT");
6.注意不能放在onActivityCreated方法內直接使用
要直接取用Fragment參數必須呼叫FragmentManager
用法如下
1.在MainActivity建立A Fragment和B Fragment
private Fragment a , b;
public void findFragment()
{
FragmentManager fm = getFragmentManager();
a = fm.findFragmentById(R.id.fragment2);
b = fm.findFragmentById(R.id.fragment2);
}
public A getA()
{
return (A)a;
}
public B getB()
{
return (B)b;
}
2.在A Fragment.java裡的
map.put("KEY_WEIGHT",fieldweight.getText().toString());
後面增加一行
((MainActivity)getActivity()).getReport().showResults();
或是
activity.getReport().showResults();
3.在MainActivity裡的onCreate放入findFragment()方法