Iam planing to give create 3 buttons with layout_weight=1, not interested in custom dialog.So I have written below code.It is not working.Always yes button gives me null. Whats wrong in this code?
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();
Regards, Android developer.
Android AlertDialog can be used to display the dialog message with OK and Cancel buttons. It can be used to interrupt and ask the user about his/her choice to continue or discontinue. Android AlertDialog is composed of three regions: title, content area and action buttons.
This method is deprecated.
AlertDialog. A dialog that can show a title, up to three buttons, a list of selectable items, or a custom layout.
Take a look here for the answer : http://code.google.com/p/android/issues/detail?id=6360
As it says in comment #4 you must call show()
on your dialog before you can access the buttons, they are not available beforehand. For an automatic solution on how to modify the buttons as soon as they are ready see Mickeys answer
This works for me :
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();
only in this order, call alertDialog.setOnShowListener
after create()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With