close

開發過程中,一定很常遇到傳值這件事

而傳值的方法也很多種,相關的議題也是讓人討論再三

今天我們就來談談 Acitivy 和 Fragment 兩種傳值的基本方式吧


1、Bundle 

Bundle bundle = new Bundle();
bundle.putBoolean(
        SssFragment.EXTRA_FIRST_SETTING
 ,getIntent().getBooleanExtra(SssFragment.E。。。G ,false));

fragment.setArguments(bundle);

上面這段 code 的情境是這樣的

Activity A   --boolean-->   Activity B   --boolean-->   Fragment B

SssFragment.EXTRA_FIRST_SETTING 只是一個 String 做為 key name

利用 Bundle 來將值包裏住

就像郵差一樣的寄送參數

 

2、Activity 實做資料接口

在 Activity 裡加入 method

public FooObject getFoo() {
    return new FooObject();
}

再到 Fragment 的 onAttach 

@Override
public void onAttach(Context context) {
    super.onAttach(context);
    fooObject = ((SssActivity) context).getFoo();
}

如此一來我們就得到 FooObject 了

此方法相較於 Bundle 來說,其實只是一個變種的傳值方式

這 method 也可以拿來做其它的事情

就看大家喜歡哪種方式了。

 

 

 

 

 

 

 


arrow
arrow
    文章標籤
    Activity Android Fragment
    全站熱搜

    顏澤偉 發表在 痞客邦 留言(0) 人氣()