在forCreateView for DialogFragment中保存的实例包为null

时间:2015-02-02 21:20:05

标签: android fragment bundle

在此代码段中,我在显示警告对话框之前保存了一个键值对。但是,使用空包调用对话框的onCreateDialog()。是否需要做一些额外的工作才能将包传递给对话框?

MyDialogFragment testFrag= new MyDialogFragment();
Bundle args = new Bundle();
args.putString("car-type", "Audi");
testFrag.setArguments(args);
testFrag.show(getFragmentManager(), "info");

2 个答案:

答案 0 :(得分:7)

您可以通过DialogFragment.getArguments()检索参数。

savedInstanceState仅在发生配置更改时使用。它正在填充onSaveInstanceState(Bundle outState),然后传递到DialogFragmentonCreate()中的新onCreateView()。第一次创建片段或活动时,它是null

答案 1 :(得分:1)

使用setArguments检索getArguments捆绑包。

作为savedInstanceState方法参数的onCreateDialog捆绑包是onSaveInstanceState中填充的捆绑包。

这两个完全不相关。