【问题标题】:Problems with alertdialog show in fragment android片段android中的alertdialog显示问题
【发布时间】:2011-09-29 14:40:11
【问题描述】:

我遵循了 android 示例,但我有一个不全面的错误:

void showDialog() {
    DialogFragment newFragment = MyAlertDialogFragment.newInstance();
    newFragment.show(fm, "alert");
}

public static class MyAlertDialogFragment extends DialogFragment {
    public static MyAlertDialogFragment newInstance() {
        MyAlertDialogFragment frag = new MyAlertDialogFragment();
        return frag;
    }

    public Dialog onCreateDialog(Bundle savedInstanceState) {
        return new AlertDialog.Builder(getActivity()).setTitle("test")
                .setMessage("bla bla bla").create();
    }
}

newFragment.show(fm, "alert"); 给我一个错误:

DialogFragment 类型中的方法 show(FragmentManager, String) 是 不适用于参数(FragmentManager、String)

有人可以帮助我吗?

【问题讨论】:

    标签: android dialog alert android-alertdialog fragment


    【解决方案1】:

    问题是因为您需要使用支持包的FragmentManager,但您在调用getFragmentManager() 时使用的是本机FragmentManager。初始化变量fm时尝试调用getSupportFragmentManager()

    【讨论】:

      【解决方案2】:

      实际上,在你按照@Jacob 所说的那样做之后,你还必须确保从 Support 包中包含 DialogFragment,而不是从本机包中包含。

      您可以通过导入来做到这一点,

      import android.support.v4.app.DialogFragment;
      

      【讨论】:

        【解决方案3】:

        就我而言,我的minSDK 设置为14,所以我不想使用支持包。我的问题是我导入了错误的DialogFragment,如下所示:

        import android.support.v4.app.DialogFragment;
        

        我把它改成了这个,它工作了:

        import android.app.DialogFragment;
        

        【讨论】:

          猜你喜欢
          • 2014-06-11
          • 2012-04-29
          • 2021-01-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-17
          • 2023-03-30
          • 1970-01-01
          相关资源
          最近更新 更多