Android 调用对话框片段时出现NullPointerException
我想在[link][1]之后使用片段创建对话框 下面是我的对话框片段代码Android 调用对话框片段时出现NullPointerException,android,dialog,fragment,Android,Dialog,Fragment,我想在[link][1]之后使用片段创建对话框 下面是我的对话框片段代码 public class AlertFragmentDialog extends DialogFragment { public static final int DIALOG_EXIT_ALERT = 1; private static final String KEY_TITLE = "titles"; private static final String KEY_DIALOG =
public class AlertFragmentDialog extends DialogFragment
{
public static final int DIALOG_EXIT_ALERT = 1;
private static final String KEY_TITLE = "titles";
private static final String KEY_DIALOG = "dialogtype";
public static DialogFragment newInstance(int _title,int _dialogType){
AlertFragmentDialog frag = new AlertFragmentDialog();
Bundle args = new Bundle();
args.putInt(KEY_TITLE, _title);
args.putInt(KEY_DIALOG, _dialogType);
frag.setArguments(args);
return null;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
switch(getArguments().getInt(KEY_DIALOG))
{
case DIALOG_EXIT_ALERT :
return new AlertDialog.Builder(getActivity()).setTitle(getArguments().getInt(KEY_TITLE))
.setPositiveButton(R.string.global_yes,new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int whichButton)
{
((MainActivity)getActivity()).doYesConfirmationClick();
}
})
.setNegativeButton(R.string.global_no, new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int whichButton)
{
((MainActivity)getActivity()).doNoConfirmationClick();
}
}).create();
}
return null;
}
}
然后用这个代码调用它
FragmentManager fm = getSupportFragmentManager();
DialogFragment alertDialog = AlertFragmentDialog.newInstance(R.string.global_exit_alert,AlertFragmentDialog.DIALOG_EXIT_ALERT);
alertDialog.show(fm, "dialog");
但当我运行时,我的模拟器上出现了错误NullPointerException。
alertDialog.show(fm,“dialog”)出错;
请帮助我,我不确定我的代码出了什么问题。您的
newInstance()
返回null
。将其更改为returnfrag
您的日志中有什么?NullpointerExceptions显示发生错误的行。检查这行
public static DialogFragment newInstance(int _title,int _dialogType){
AlertFragmentDialog frag = new AlertFragmentDialog();
Bundle args = new Bundle();
args.putInt(KEY_TITLE, _title);
args.putInt(KEY_DIALOG, _dialogType);
frag.setArguments(args);
return frag; // you were returning null
}