在使用 Fragment Transaction 時,我們可以為 Fragment 傳入一些參數,來改變 Fragment 的起始設定。
### 使用 Bundle
在 Android 中,Bundle 就像一個 JSONObject 物件,可以使用 Key-Value 的方式來放入 / 取出一些常用的資料型別。我們可以通過 Bundle 來把資料傳入到 Fragment 內。
### 例子
以下代碼會建立一個 Bundle Object,然後設定 id 及 name 值,再把 Bundle Object 傳入到 MyFragment 內 :
```java
// create bundle object
Bundle bundle = new Bundle();
bundle.putInt("id", 1);
bundle.putString("name", "19Site");
// create fragment object
Fragment fragment = new MyFragment();
// set bundle as fragment arguments
fragment.setArguments(bundle);
// prepare fragment transaction
FragmentTransaction mFragmentTransaction = getSupportFragmentManager().beginTransaction();
mFragmentTransaction.addToBackStack(null);
mFragmentTransaction.replace(R.id.frame_layout, fragment);
mFragmentTransaction.commit();
```
在檔案 `MyFragment.java` 內,我們可以使用 `getArguments()` 來取得傳入的 Bundle Object :
```java
// get arguments
Bundle bundle = getArguments();
// get values from bundle
int id = bundle.getInt("id", 0);
String name = bundle.getString("name", null);
```