如何在对话框中显示相应的图标

时间:2011-07-14 12:41:43

标签: android dialog icons alert

我有一个允许用户删除视频文件的应用程序。当我按下删除按钮时,我正在使用

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设备中看到的警告或删除图标。任何人都可以帮助我获取这些图标或使用任何其他可以显示这些图标的警报对话框吗?

6 个答案:

答案 0 :(得分:28)

我倾向于像官方文档示例中那样使用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文件夹/ p​​latforms / android版本#/ data / res / drawable-mdpi里面的实际图标看起来

答案 1 :(得分:5)

要设置默认对话框图标,请使用:

.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

答案 2 :(得分:0)

只需替换.setIcon(R.drawable.icon);.setIcon(getResources().getDrawable(R.drawable.icon)); 但它被弃用了。

答案 3 :(得分:0)

另一种(肮脏)方式:

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

new AlertDialog.Builder(this)
    .setIcon(typedValue.resourceId)
    ...
    .show();

答案 4 :(得分:0)

您还可以将“警报”对话框按钮的某些图标设置为:

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

答案 5 :(得分:0)

只需为您设置AlertDialog的标题。像这样:

typedef struct Sys_Inject
{
   uint16_t num;
   uint16_t alternative;
   uint8_t  delay;
   uint8_t  thresh;
   uint8_t  reserved[2 + sizeof(BOOL32) + sizeof(options_select_t) + any padding that was present between the original fields];
   uint32_t per;
} Sys_Inject_t;

很好的例子:

adb.setTitle(R.string.app_name);