Изменить цвет кнопки в AlertDialog - PullRequest
38 голосов
/ 04 ноября 2010

Как я могу изменить цвет кнопки (ей) в AlertDialog в Android?

Ответы [ 13 ]

1 голос
/ 03 ноября 2015

Чтобы изменить цвет кнопок AlertDailog

Код:

// Initialize AlertDialog & AlertDialog Builder
AlertDialog.Builder builder = new AlertDialog.Builder(YourActivity.this);
builder.setTitle(R.String.AlertDialogTitle);
...........
......... 
//Build your AlertDialog 
AlertDialog Demo_alertDialog= builder.create();
Demo_alertDialog.show();

//For Positive Button:
Button b_pos; 
b_pos=Demo_alertDialog.getButton(DialogInterface.BUTTON_POSITIVE);
if(b_pos!=null){
   b_pos.setTextColor(getResources().getColor(R.color.YourColor));
   }    


//For Neutral Button:
Button b_neu;
b_neu=Demo_alertDialog.getButton(DialogInterface.BUTTON_NEUTRAL);
if(b_neu!=null){
   b_neu.setTextColor(getResources().getColor(R.color.YourColor));
   }

//For Negative Button:
Button b_neg;
b_neg=Demo_alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE);
if(b_neg!=null){
   b_neg.setTextColor(getResources().getColor(R.color.YourColor));
   }
0 голосов
/ 09 августа 2011

нет, вы не можете изменить цвет или изображения или фон кнопок по умолчанию в окнах предупреждений. Для настройки вам нужно будет сделать это в настраиваемом диалоговом окне, как это.

public class TryAgainAlert extends Dialog implements OnClickListener
{
    @Override
 public boolean onKeyDown(int keyCode, KeyEvent event)
 {
  if (keyCode == KeyEvent.KEYCODE_BACK)
  {   

   Intent i = new Intent(getApplicationContext(), MainMenu.class);
   finish();
   startActivity(i);

   return true;
  }
  return super.onKeyDown(keyCode, event);
 }


    TextView scores;
    Button tryagain,mainmenu,submit;


     public TryAgainAlert(Context context) {
        super(context);

        setContentView(R.layout.tryagainalert);

        scores=(TextView)findViewById(R.id.text);



        tryagain= (Button) findViewById(R.id.trya);
        mainmenu= (Button) findViewById(R.id.submitscore);
        submit= (Button) findViewById(R.id.mainmenu);

    }


    @Override
    public void onClick(View v) {
        if(v == tryagain)
        {

        else if (v==mainmenu)
        {


        }
        else if (v == submit)
        {

        }
    }

}

вы можете делать все, что захотите, с файлом XML. Надеюсь, это поможет. Спасибо

0 голосов
/ 05 ноября 2010

Вы имеете в виду нейтральные, положительные и отрицательные кнопки?Или для кнопок, которые вы включили в макет?

Если вы имеете в виду первое, то да, вы можете.Ознакомьтесь с разделом Custom Button в этом руководстве .В основном вам нужен XML-файл, который сообщит вашей кнопке, какой рисунок / цвет использовать для каждого изменения состояния.Затем вы можете установить этот XML-файл в качестве фона вашей кнопки.

...