Как показать соответствующий значок в диалоговом окне - PullRequest
8 голосов
/ 14 июля 2011

У меня есть приложение, которое позволяет пользователям удалять видеофайлы.Когда я нажимаю кнопку удаления, я использую

DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which) {
        switch (which) {
        case DialogInterface.BUTTON_POSITIVE:
            // mycode........
            break;
        case DialogInterface.BUTTON_NEGATIVE:
            // mycode.....
            break;
        }
    }
};

Но в этом сообщении нет значка предупреждения или удаления, как мы видим на устройствах Android.Может ли кто-нибудь помочь мне получить эти значки или использовать другие диалоговые окна с предупреждениями, которые могут отображать эти значки?

Ответы [ 4 ]

28 голосов
/ 14 июля 2011

Я склонен использовать AlertDialog.Builder, как они показывают в официальном примере документа

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Are you sure you want to exit?")
   .setCancelable(false)
   .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
       public void onClick(DialogInterface dialog, int id) {
            MyActivity.this.finish();
       }
   })
   .setNegativeButton("No", new DialogInterface.OnClickListener() {
       public void onClick(DialogInterface dialog, int id) {
            dialog.cancel();
       }
   })
   //Set your icon here
   .setTitle("Alert!")
   .setIcon(R.drawable.icon);
AlertDialog alert = builder.create();
 alert.show();//showing the dialog

Что касается самого значка, посмотрите в папке sdk / platform / android version # / data / res / drawable-mdpi или что-то в этом роде

5 голосов
/ 29 июля 2017

Для установки значков диалога по умолчанию используйте:

.setIcon(android.R.drawable.ic_dialog_alert)

Доступно еще несколько значков:

  • android.R.drawable.ic_dialog_dialer
  • android.R.drawable.ic_dialog_info
  • android.R.drawable.ic_dialog_email
  • android.R.drawable.ic_dialog_map
0 голосов
/ 25 августа 2017

Другой (грязный) путь:

TypedValue typedValue = new TypedValue();
getTheme().resolveAttribute(android.R.attr.alertDialogIcon, typedValue, true);

new AlertDialog.Builder(this)
    .setIcon(typedValue.resourceId)
    ...
    .show();
0 голосов
/ 21 марта 2014

Просто замените .setIcon(R.drawable.icon); в .setIcon(getResources().getDrawable(R.drawable.icon)); Но это устарело.

...