AlertDialog.getButton () -Methode gibt Nullzeiger Ausnahme android

Iam planen zu geben 3 Tasten mit layout_weight = 1, nicht interessiert in benutzerdefinierten dialog.So habe ich unter Code geschrieben.Es funktioniert nicht.Always ja Taste gibt mir null. Was ist in diesem Code falsch?

AlertDialog dialog= new AlertDialog.Builder(this).create(); dialog.setIcon(R.drawable.alert_icon); dialog.setTitle("title"); dialog.setMessage("Message"); dialog.setButton(AlertDialog.BUTTON_POSITIVE,"Yes", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { } }); Button yesButton = dialog.getButton(AlertDialog.BUTTON_POSITIVE); Log.w("Button",""+yesButton);//here getting null LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, 1f); yesButton.setLayoutParams(layoutParams); dialog.show(); 

Grüße, Android-Entwickler.

  • AlertDialog setCustomTitle Styling entspricht dem Standard AlertDialog Titel
  • Benutzerdefinierte Alert-Dialog bekommen unerwünschte Padding
  • AlertDialog innerhalb vonClickListener
  • Android-Alert-Dialog
  • Wie kann ich die Reihenfolge der positiven und negativen Tasten in AlertDialog einstellen?
  • DialogFragment Vorteile gegenüber AlertDialog
  • Wie kann ich Dateien von webview Android herunterladen?
  • Wie kann ich eine Datei auf / sdcard ausführen?
  • Wie füge ich eine Bitmap und eine Farbe in einer Ebenenliste hinzu
  • Android-App, die auf allen anderen Apps läuft?
  • Ist es möglich, den HTML-Code aus WebView zu erhalten
  • GoogleCloudMessaging kann nicht auf einen Typ aufgelöst werden
  • 3 Solutions collect form web for “AlertDialog.getButton () -Methode gibt Nullzeiger Ausnahme android”

    Schauen Sie hier nach der Antwort: http://code.google.com/p/android/issues/detail?id=6360

    Wie es in Kommentar # 4 sagt, müssen Sie show() in Ihrem Dialog aufrufen show() bevor Sie auf die Schaltflächen zugreifen können, sie sind nicht vorher verfügbar. Für eine automatische Lösung auf, wie man die Knöpfe zu ändern, sobald sie bereit sind, sehen Mickeys Antwort

    Das funktioniert für mich:

     AlertDialog alertDialog = new AlertDialog.Builder(this) .setMessage(message) .setCancelable(true) .setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { //do smthng }) .setNegativeButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { //do snthn } }).create(); alertDialog.setOnShowListener(new OnShowListener() { @Override public void onShow(DialogInterface dialog) { // Button positiveButton = ((AlertDialog) dialog) .getButton(AlertDialog.BUTTON_POSITIVE); positiveButton.setBackgroundDrawable(getResources() .getDrawable(R.drawable.btn_default_holo_dark)); Button negativeButton = ((AlertDialog) dialog) .getButton(AlertDialog.BUTTON_NEGATIVE); positiveButton.setBackgroundDrawable(getResources() .getDrawable(R.drawable.btn_default_holo_dark)); } }); alertDialog.show(); 

    Nur in dieser Reihenfolge rufen Sie alertDialog.setOnShowListener nach create()

    Danke wieux.But für neue Entwickler Verständnis Zweck Iam Re-Schreiben Code unten

      AlertDialog dialog= new AlertDialog.Builder(this).create(); dialog.setIcon(R.drawable.alert_icon); dialog.setTitle("title"); dialog.setMessage("Message"); dialog.setButton(AlertDialog.BUTTON_POSITIVE,"Yes", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { } }); dialog.show(); Button yesButton = dialog.getButton(AlertDialog.BUTTON_POSITIVE); Log.w("Button",""+yesButton);//here getting null LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, 1f); yesButton.setLayoutParams(layoutParams); 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.