android中alertdialog显示的问题
我遵循了android示例,但我有一个不理解的错误: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
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;