NullPointerException lors de la création d'une nouvelle boîte de Dialogue

J'ai un DialogFragment qui crée une listview dialogue et sur un élément de la liste cliquez sur je veux afficher une boîte de dialogue d'alerte, mais quand j'ai créer la boîte de dialogue, il me donne une NullPointerException avec une erreur que je n'ai jamais vu avant

08-05 11:40:42.315: E/AndroidRuntime(4693): java.lang.NullPointerException
08-05 11:40:42.315: E/AndroidRuntime(4693):     at android.app.AlertDialog.resolveDialogTheme(AlertDialog.java:142)
08-05 11:40:42.315: E/AndroidRuntime(4693):     at android.app.AlertDialog$Builder.<init>(AlertDialog.java:359)
08-05 11:40:42.315: E/AndroidRuntime(4693):     at com.tyczj.bowling.dialogs.SeasonType$1$1.onClick(SeasonType.java:60)
08-05 11:40:42.315: E/AndroidRuntime(4693):     at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
08-05 11:40:42.315: E/AndroidRuntime(4693):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-05 11:40:42.315: E/AndroidRuntime(4693):     at android.os.Looper.loop(Looper.java:137)
08-05 11:40:42.315: E/AndroidRuntime(4693):     at android.app.ActivityThread.main(ActivityThread.java:4745)
08-05 11:40:42.315: E/AndroidRuntime(4693):     at java.lang.reflect.Method.invokeNative(Native Method)
08-05 11:40:42.315: E/AndroidRuntime(4693):     at java.lang.reflect.Method.invoke(Method.java:511)
08-05 11:40:42.315: E/AndroidRuntime(4693):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
08-05 11:40:42.315: E/AndroidRuntime(4693):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
08-05 11:40:42.315: E/AndroidRuntime(4693):     at dalvik.system.NativeStart.main(Native Method)

Voici mon Dialogue est onCreate

@Override
public Dialog onCreateDialog(Bundle state){
final Dialog d = new Dialog(getActivity());
d.setContentView(R.layout.dialog_layout);
d.setTitle("Select a season");
ListView lv = (ListView)d.findViewById(R.id.dialog_list);
String[] list = getResources().getStringArray(R.array.season_dialog_type);
lv.setAdapter(new ArrayAdapter<String>(getActivity(),R.layout.stats_list_layout,list));
lv.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
d.dismiss();
FragmentTransaction ft = getFragmentManager().beginTransaction();
if(arg2 == 0){
DialogFragment df = new SeasonsDialog(true);
df.show(ft,null);
}else if(arg2 == 1){
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
final View v = getActivity().getLayoutInflater().inflate(R.layout.add_season_layout, null, false);
builder.setTitle("Add a season").setView(v).setPositiveButton("Add", new OnClickListener(){
@Override
public void onClick(DialogInterface arg0, int arg1) {
arg0.dismiss();
AlertDialog.Builder builder2 = new AlertDialog.Builder(getActivity()); //Error here
builder2.setTitle("Warning!").setMessage("Adding a new season will cause all new games to be under this season.\n\n Do you wish to continue?")
.setPositiveButton("Yes", new OnClickListener(){
@Override
public void onClick(DialogInterface dialog,int which) {
dialog.dismiss();
EditText et = (EditText)v.findViewById(R.id.editText1);
ContentValues values = new ContentValues();
values.put(Games.SEASON, et.getText().toString());
Uri uri = getActivity().getContentResolver().insert(Games.SEASONS_URI, values);
et.setText("");
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(getActivity());
SharedPreferences.Editor edit = pref.edit();
edit.putLong(Preferences.SELECTED_SEASON, ContentUris.parseId(uri)).commit();
}
}).setNegativeButton("No", new OnClickListener(){
@Override
public void onClick(DialogInterface dialog,int which) {
dialog.dismiss();
}
}).create().show();
}
}).setNegativeButton("Cancel", new OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).create().show();
}
}
});
return d;
}

c'erreur est à cette ligne dans mon onClick

AlertDialog.Builder builder2 = new AlertDialog.Builder(getActivity());

ce que signifie cette erreur?

Vous ne pouvez pas appeler getActivity() dans le onClick() méthode. Vous devez appeler Dialog.this.getActivity().

OriginalL'auteur tyczj | 2012-08-05