How to show appropriate icon on dialog box

2020-08-23 01:35发布

I have an application that allows the users to delete video files. When I press the delete button, I am using

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;
        }
    }
};

But this message doesn't have a warning or delete icon as we see in android devices. Can anyone help me in getting those icons or using any other alert dialogs that can show those icons?

5条回答
冷血范
2楼-- · 2020-08-23 01:52

You can also set certain icon for the Alert dialog buttons as:

builder.setPositiveButtonIcon( getResources().getDrawable( drawable.ic_menu_share )

查看更多
来,给爷笑一个
3楼-- · 2020-08-23 01:53

Another (dirty) way:

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

new AlertDialog.Builder(this)
    .setIcon(typedValue.resourceId)
    ...
    .show();
查看更多
唯我独甜
4楼-- · 2020-08-23 01:56

Just replace .setIcon(R.drawable.icon); to .setIcon(getResources().getDrawable(R.drawable.icon)); But it's deprecated.

查看更多
闹够了就滚
5楼-- · 2020-08-23 01:58

I tend to use AlertDialog.Builder like they show in the official doc example

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

As for the actual icon look inside your sdk folder/platforms/android version #/data/res/drawable-mdpi or something

查看更多
狗以群分
6楼-- · 2020-08-23 02:03

In order to set the default Dialog icons use:

.setIcon(android.R.drawable.ic_dialog_alert)

There are a few more icons available:

  • android.R.drawable.ic_dialog_dialer
  • android.R.drawable.ic_dialog_info
  • android.R.drawable.ic_dialog_email
  • android.R.drawable.ic_dialog_map
查看更多
登录 后发表回答