片段android中的alertdialog显示问题

Posted

技术标签:

【中文标题】片段android中的alertdialog显示问题【英文标题】:Problems with alertdialog show in fragment android 【发布时间】: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)

有人可以帮助我吗?

【问题讨论】:

【参考方案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;

【讨论】:

以上是关于片段android中的alertdialog显示问题的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Kotlin 从 Android 中的片段访问另一个片段?

没有AlertDialog的android中的多选微调器

Android 片段隐藏显示 OnHide/OnShow?

Android:如何在 PIP 模式下显示 AlertDialog?

在片段android中显示对话框

AlertDialog 在片段中不起作用