2013-05-29 54 views
1

我想创建对话框使用片段下面这个[链接] [1],NullPointerException异常当调用对话片段

这里我的代码为对话片段

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”); 请帮助我不知道我的代码有什么问题..

+0

什么在你的logcat? NullpointerExceptions向您显示发生错误的行。检查这一行 – B770

回答

1
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 
} 
2

您的newInstance()返回null。将其更改为返回frag

相关问题