2016-05-11 10 views
0

Hallo, ich bekomme immer diese Ausnahme. Unten ist mein Code. Bitte helfen Sie mir, dieses Problem zu lösen:AlertDialog singleChoiceItem NullPointerException

private void openDeleteCustomProfileDialog(String[] names) { 

    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setTitle(R.string.delete_profile_title); 
    if (names.length > 0) { 
    builder.setMessage(R.string.delete_no_custom_profile); 
    builder.setCancelable(false); 
    builder.setSingleChoiceItems(names, -1, new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialogInterface, int which) { 
      Toast.makeText(AudioFX.this, "which: " + which, Toast.LENGTH_LONG).show(); 
     } 
    }); 

    builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialogInterface, int which) { 
      dialogInterface.dismiss(); 
     } 
    }); 
    builder.setPositiveButton(R.string.delete, new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialogInterface, int which) { 
      dialogInterface.dismiss(); 
     } 
    }); 
    } else { 
     builder.setMessage(R.string.delete_no_custom_profile); 
     builder.setNegativeButton(R.string.done, new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialogInterface, int i) { 
       dialogInterface.dismiss(); 
      } 
     }); 
    } 

    builder.create().show(); 
} 

Log:

01-07 04:40:06.619: E/AndroidRuntime(2700): java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:394) 

01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.widget.AbsListView.obtainView(AbsListView.java:2467) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.widget.ListView.measureHeightOfChildren(ListView.java:1286) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.widget.ListView.onMeasure(ListView.java:1194) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.view.View.measure(View.java:17915) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5698) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:465) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.view.View.measure(View.java:17915) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5698) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1692) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:760) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:629) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.view.View.measure(View.java:17915) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5698) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:465) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.view.View.measure(View.java:17915) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5698) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:465) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.view.View.measure(View.java:17915) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5698) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:465) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2728) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.view.View.measure(View.java:17915) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2421) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1391) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1647) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1301) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6676) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:800) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.view.Choreographer.doCallbacks(Choreographer.java:603) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.view.Choreographer.doFrame(Choreographer.java:572) 

01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:786) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.os.Handler.handleCallback(Handler.java:815) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.os.Handler.dispatchMessage(Handler.java:104) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.os.Looper.loop(Looper.java:194) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at android.app.ActivityThread.main(ActivityThread.java:5616) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at java.lang.reflect.Method.invoke(Native Method) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at java.lang.reflect.Method.invoke(Method.java:372) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959) 
01-07 04:40:06.619: E/AndroidRuntime(2700):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754) 
+0

Also, was ist null? – ianhanniballake

+0

Veröffentlichen Sie die Stack-Trace pls –

+0

@ianhanniballake Bitte werfen Sie einen Blick auf Protokolle – rup35h

Antwort

1

ändern unten Linien:

Von:

builder.setTitle(R.string.delete_profile_title); 
builder.setMessage(R.string.delete_no_custom_profile); 

An:

builder.setTitle(getResources().getString(R.string.delete_profile_title)); 
builder.setMessage(getResources().getString(R.string.delete_no_custom_profile)); 

Edit 1:

Stellen Sie sicher, dass Sie nicht mit irgendeiner nullString[] names.

Hoffe, das wird Ihnen helfen. Diese

+1

funktioniert immer noch nicht. – rup35h

+0

@ rup35h, Bearbeitete Antwort, bitte überprüfen Sie mit Bearbeiten 1. –

+0

Ich fand das Problem Danke – rup35h

0

Wechsel:

Sie versuchen, Titel und die Nachricht zu setzen, ohne Ressourcen zu bekommen.

builder.setTitle(R.string.delete_profile_title); 
builder.setMessage(R.string.delete_no_custom_profile); 

TO

Verwendung getString über getResourse insbesondere context.

builder.setTitle(context.getResources().getString(R.string.delete_profile_title)); 
builder.setMessage(context.getResources().getString(R.string.delete_no_custom_profile)); 

Tun Sie dies in setNegativeButton, setPositiveButton und setMessage für Alertdialog zu.

+1

@HirenPatel dont rush Ich bearbeite meine Antwort und wenn Sie sehen können, fügte ich Beschreibung und Kontext Objekt zu. – Amy

+0

AlertDialog.Builder-Builder = new AlertDialog.Builder (this); diese mittlere Verwendung hat Aktivität verwendet, und in der Aktivität keine Notwendigkeit, Kontext hinzufügen –

+1

@HirenPatel versuchen, alle Code-Autor zu lesen Autor hat Fehler in der unteren Zeile auch Ich habe das auch hervorgehoben. – Amy

1

Verwendung

builder.setTitle(YOUR_CONTEXT.getString(R.string.delete_profile_title)); 
builder.setMessage(YOUR_CONTEXT.getString(R.string.delete_no_custom_profile));