我已经关注了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)
有人可以帮助我吗?
答案 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;