This is my code:

protected void showNewsItem(News news) {
    FragmentManager fm = getFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();
    DialogFragment newFragment = MyNewsFragment.newInstance();
    newFragment.show(ft, "dialog");
}

and the error This FragmentManager should be recycled after use with #recylce() appears on the beginTransaction line.

I've tried adding fm.recycle(); like the error suggests, but that gives me an error that recycle is undefined.

有帮助吗?

解决方案

Use the DialogFragment.show(FragmentManager manager, String tag) version instead.
So in your case:

protected void showNewsItem(News news) {
    DialogFragment newFragment = MyNewsFragment.newInstance();
    newFragment.show(getFragmentManager(), "dialog");
}

Usually, the above idiom is sufficient for showing a DialogFragment.

The show(FragmentTransaction transaction, String tag) version is for "piggybacking" an existing FragmentTransaction.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top