3

这是我的代码:

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

并且错误This FragmentManager should be recycled after use with #recylce()出现beginTransaction在行上。

我试过fm.recycle();像错误提示的那样添加,但这给了我一个recycle未定义的错误。

4

1 回答 1

4

请改用该DialogFragment.show(FragmentManager manager, String tag)版本。
所以在你的情况下:

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

通常,上述成语足以显示DialogFragment.

show(FragmentTransaction transaction, String tag)版本用于“搭载”现有的FragmentTransaction.

于 2013-04-15T00:29:10.750 回答