alertdialog的问题显示在片段android中

时间:2011-07-06 12:49:47

标签: android dialog alert alertdialog fragment

我已经关注了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)

有人可以帮助我吗?

3 个答案:

答案 0 :(得分:13)

问题是因为您需要使用支持包FragmentManager,但在致电FragmentManager时使用原生getFragmentManager()。初始化变量getSupportFragmentManager()时,请尝试致电fm

答案 1 :(得分:6)

实际上,在您执行@Jacob之后,您还必须确保从支持包中包含DialogFragment,而不是从本机包中包含。

您可以通过导入

来实现
import android.support.v4.app.DialogFragment;

答案 2 :(得分:5)

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

import android.support.v4.app.DialogFragment;

我将其更改为此并且有效:

import android.app.DialogFragment;