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 也可以拿來做其它的事情
就看大家喜歡哪種方式了。
文章標籤
全站熱搜