Android 为什么我能';在自定义对话框中不显示图像?

Android 为什么我能';在自定义对话框中不显示图像?,android,image,dialog,Android,Image,Dialog,我想在我的Android应用程序中创建一些日志记录过程。 我已经成功地检测到用户在屏幕上按下的位置(三次),并由此创建日志记录序列。 最后,我想显示3个代表所选日志序列的图像(来自我的可绘制文件夹) 我已经动态地设置了可绘制ID,当我把图像放在主布局上时,它就可以工作了。 但若我把图像放在自定义对话框中,我会得到强制关闭。 从LogCat中我看到了以下内容:java.lang.NullPointerExceptionatimage1.setImageResource(iIdSlike) 如果我将

我想在我的Android应用程序中创建一些日志记录过程。 我已经成功地检测到用户在屏幕上按下的位置(三次),并由此创建日志记录序列。 最后,我想显示3个代表所选日志序列的图像(来自我的可绘制文件夹)

我已经动态地设置了可绘制ID,当我把图像放在主布局上时,它就可以工作了。 但若我把图像放在自定义对话框中,我会得到强制关闭。 从LogCat中我看到了以下内容:java.lang.NullPointerExceptionat
image1.setImageResource(iIdSlike)

如果我将可绘制ID显示为文本,则可以,并且主对话框和自定义对话框布局上的ID相同

即使我这样设置图像(不是动态设置),也会强制关闭:

为什么我不能在自定义对话框上显示图像

这是我的dijalog.xml(自定义对话框布局):

有人能帮我吗? 这件事让我抓狂了两天。
谢谢。

您的findViewById失败了。所以你得到了NullPointerException

 ImageView image1 = (ImageView) findViewById(R.id.imgDrugi); 
应该是

ImageView image1 = (ImageView) dialog.findViewById(R.id.imgDrugi);
试试这个:

image1.setImageDrawable(getResources().getDrawable(iIdSlike));

在此之前,请在对话框代码中添加:

ImageView image1 = (ImageView) dialog.findViewById(R.id.imgDrugi);
您可以这样使用:

Drawable image = ImageOperations(context,ed.toString(),"image.jpg");
ImageView imgView = new ImageView(context);
imgView = (ImageView)findViewById(R.id.image1);
imgView.setImageDrawable(image);

这将返回您要访问的绘图表的id。。。然后,您可以通过执行以下操作在imageview中设置图像

 int id = getResources().getIdentifier("yourpackagename:drawable/" + StringGenerated, null, null);
imageview.setImageResource(id);

使用ImageView image1=(ImageView)dialog.findViewById(R.id.imgDrugi);是的,是的,是的,它起作用了。谢谢。我在这里犹豫着问问题(在读了两天的帖子之后),但现在我发现我错了。感谢大家快速而有用的回复。你们都很摇滚。
ImageView image1 = (ImageView) dialog.findViewById(R.id.imgDrugi);
Drawable image = ImageOperations(context,ed.toString(),"image.jpg");
ImageView imgView = new ImageView(context);
imgView = (ImageView)findViewById(R.id.image1);
imgView.setImageDrawable(image);
setImageDrawable(getResources().getDrawable(R.drawable.icon));
 int id = getResources().getIdentifier("yourpackagename:drawable/" + StringGenerated, null, null);
imageview.setImageResource(id);