从另一个CustomDialogFragment调用CustomDialogFragment

时间:2017-07-24 03:54:32

标签: android android-context android-dialog

你好吗?所以我有一个问题从另一个cdf调用我的自定义对话框片段(cdf),当我从FragmentActivity调用cdf它工作正常。 这是我用来从FragmentActivity调用cdf的方法。

Existing URL

http://www.example.com/index.php?option=com_toys&limitstart=20

Proposed URL

http://www.example.com/index.php?option=com_toys&view=list&Itemid=2&limitstart=20

这是来自第一个cdf的onCreate方法

private void openDatePicker(int idView) {
    Bundle bundle = new Bundle();
    bundle.putInt("VIEW", idView);
    DialogFragment newFragment = new DatePicker();
    newFragment.setArguments(bundle);
    newFragment.show(getActivity().getFragmentManager(), "datePicker");
}

当我从cdf调用它时,它给了我一个错误

@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    View view = getActivity().getLayoutInflater().inflate(R.layout.dialog_add, null);
    ButterKnife.bind(this, view);
    builder.setView(view);

我假设它与上下文有关,我的cdf不知道其他cdf的上下文所以它不知道在哪里加载。那么如何才能从另一个cdf中调用cdf?

1 个答案:

答案 0 :(得分:0)

将视图从一个片段传递到另一个片段不是正确的方法。根据您是否添加/替换片段,显示第二个片段时,可以销毁第一个片段中的视图。 Check the fragment lifecycle here in the android doc.

使用Bundle方法将值(而不是视图或视图ID)传递给第二个片段setArguements