使用 Bundle 將資料從 Activity 傳遞到 Fragment
所有片段都應該有一個空建構函式(即沒有輸入引數的建構函式方法)。因此,為了將資料傳遞給正在建立的 Fragment,你應該使用 setArguments()
方法。此方法獲取一個 bundle,你可以將資料儲存在其中,並將 Bundle 儲存在引數中。隨後,可以在片段的 onCreate()
和 onCreateView()
回撥中檢索此 Bundle。
活動:
Bundle bundle = new Bundle();
String myMessage = "Stack Overflow is cool!";
bundle.putString("message", myMessage );
FragmentClass fragInfo = new FragmentClass();
fragInfo.setArguments(bundle);
transaction.replace(R.id.fragment_single, fragInfo);
transaction.commit();
分段:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
String myValue = this.getArguments().getString("message");
...
}