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 FragmentB 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()方法

 

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Nevic 的頭像
    Nevic

    Nevic

    Nevic 發表在 痞客邦 留言(0) 人氣()