0

我在尝试将图像添加到 AlertDialog 时遇到了麻烦。这个形象并不总是一样的,每次都不一样。

我正在尝试做的是向 AlertDialog 添加图像(如果可能作为 imageView,而不是作为对话框的图标)知道他的名字。问题是我有一千张图片。

1)所以,当调用 builder.setIcon(int iconid) 我不知道如何传递 iconid 而不是图片的名称。考虑到我每次都使用不同的图像。

2)关于如何将图像作为 imageView 的任何建议(考虑到有与此对话框相关的布局)?

更新我有一个String s = scanQR.substring(start, 21);使用二维码阅读器扫描的结果。

此字符串包含我要放入 AlertDialog 的图像的名称。现在,这里是对话框的代码:

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {


AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();

    builder.setView(inflater.inflate(R.layout.dialog_single_work, null))

               //HERE IS THE ICON (BETTER WILL BE AN IMAGEVIEW, BUT DUNNO HOW TO DO IT)
           .setIcon()
           .setPositiveButton("POS", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {

        }
    })
    .setNegativeButton("NEG", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {

        }
    });
return builder.create();
}
}

方法 .setIcon 需要一个 int (iconid) 或一个可绘制对象。但我所拥有的只是图像的名称(String s)。我该如何解决?

4

1 回答 1

1

builder.setIcon();实际上是设置一个AlertDialog放置在对话框标题左侧的图标。据我了解,您想在对话框中添加图像,而不是图标。为此,您应该在对话框中添加自定义视图:

View mView = View.inflate(this, R.layout. dialog_single_work, null);
ImageView mImage = (ImageView) mView.findViewById(R.id.image);
// use this ImageView to set your image
builder.setView(mView);

并在其布局中添加一个ImageView您可以设置图像的位置。那是你想要达到的目标吗?

编辑: 做类似的事情:

public void showDialog(int result){
     switch(result){
     case 0:
        mImageView.setImageResource(R.drawable.my_icon);
      break;
     case 1:
        mImageView.setImageResource(R.drawable.my_second_icon);
      break;
      // and so on... or do it with string or whatever is your response.
     }
}

Edit2:您可以使用这样的字符串从资源中获取图像:

String mDrawableName = "myappicon";
int resID = getResources().getIdentifier(mDrawableName , "drawable", getPackageName());
于 2013-05-09T14:41:04.000 回答