我在尝试将图像添加到AlertDialog时遇到了麻烦。这个图像并不总是一样,每次都不一样。
我正在尝试做的是将图像添加到AlertDialog(如果它可以作为imageView,而不是作为对话框的图标)知道他的名字。麻烦的是我有一千张图片。
1)因此,当调用builder.setIcon(int iconid)时,我不知道如何传递iconid而不是图片的名称。考虑到我每次都使用不同的图像。
2)有关如何将图像作为imageView的任何建议(考虑到与此对话框相关的布局)?
UPDATE
我有String s = scanQR.substring(start, 21);
,这是使用QR-CODE阅读器进行扫描的结果。
此字符串包含我想要放入AlertDialog的图像的名称。 现在,这是Dialog的代码:
@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)或drawable对象。但我所拥有的只是图像的名称(String s)。我该如何解决?
答案 0 :(得分: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());