使用 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");
...
}