Android使用DialogFragment扩展ListFragment类

时间:2014-10-14 12:37:14

标签: android android-dialog android-dialogfragment

我有ReceiveListFragment课程。那扩展ListFragment,我想使用DialogFragment,但我得到了这个错误:

Error:(200, 15) java: no suitable method found for show(android.support.v4.app.FragmentManager,java.lang.String)
    method android.app.DialogFragment.show(android.app.FragmentTransaction,java.lang.String) is not applicable
      (actual argument android.support.v4.app.FragmentManager cannot be converted to android.app.FragmentTransaction by method invocation conversion)
    method android.app.DialogFragment.show(android.app.FragmentManager,java.lang.String) is not applicable
      (actual argument android.support.v4.app.FragmentManager cannot be converted to android.app.FragmentManager by method invocation conversion)

我使用和定义与此代码类似:

FragmentManager manager = getFragmentManager();

        AddNoteDialogFragment dialog = new AddNoteDialogFragment();
        dialog.show(manager,"1");

我的DialogFragment课程是:

    public class AddNoteDialogFragment extends DialogFragment {
            public AddNoteDialogFragment() {
            }


        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            getDialog().setTitle(getString(R.string.app_name));
            View view = inflater.inflate(R.layout.view_sms_dialog,
                    container);
            return view;
        }

        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            Dialog dialog = super.onCreateDialog(savedInstanceState);
            dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
            return dialog;
        }
    }

1 个答案:

答案 0 :(得分:0)

我有类似的问题。问题是你(无意识地)混合了来自支持库的导入。您正在提供v4片段管理器,而参数必须是本机FragmentManager

我的问题反之亦然:param应该是v4,但我提供了原生FragmentManager。我通过ActionBarActivity而不是Activity扩展我的课程来解决我的问题,并致电getSupportFragmentManager()以提供v4片段管理员。