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.

  • Recht rechtfertigen Text in AlertDialog
  • Zeigen Sie eine Softtastatur in AlertDialog mit einem WebView im Inneren (Android)
  • Android: Wie kann ich Edittext.getText () im benutzerdefinierten AlertDialog abrufen?
  • Probleme mit alertdialog zeigen in Fragment Android
  • Set Android Theme.Light für Alert Dialog
  • Welche Größe sollte das Symbol in einem Alertdialog sein?
  • Live Testing der Android LVL
  • So deaktivieren Sie Android LocationListener, wenn die Anwendung geschlossen ist
  • Force Video in Youtube App auf Android zu öffnen
  • Animiertes Ladebild im Pikasso
  • Wie füge ich selectableItemBackground zu einer ImageButton programmgesteuert hinzu?
  • Text in Integer-Wert setzen
  • 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.