Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android中alertdialog显示的问题_Android_Dialog_Alert_Android Alertdialog_Fragment - Fatal编程技术网

android中alertdialog显示的问题

android中alertdialog显示的问题,android,dialog,alert,android-alertdialog,fragment,Android,Dialog,Alert,Android Alertdialog,Fragment,我遵循了android示例,但我有一个不理解的错误: void showDialog() { DialogFragment newFragment = MyAlertDialogFragment.newInstance(); newFragment.show(fm, "alert"); } public static class MyAlertDialogFragment extends DialogFragment { public static MyAlertDia

我遵循了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,“警报”)返回一个错误:

类型DialogFragment中的方法show(FragmentManager,String)为 不适用于参数(FragmentManager,字符串)


有人可以帮我吗?

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

实际上,在按照@Jacob所说的操作之后,还必须确保包含来自支持包而非本机包的DialogFragment

你可以通过导入

import android.support.v4.app.DialogFragment;

在我的情况下,我的
minSDK
设置为
14
,因此我不想使用支持包。我的问题是我导入了错误的
对话框片段
,如下所示:

import android.support.v4.app.DialogFragment;
我把它改成这个,它成功了:

import android.app.DialogFragment;