2016-12-25 76 views
0

我对android非常陌生。我必须将图像动态加载到回收站视图行。由于空对象,我正在使用下面的代码和应用程​​序崩溃。从抽屉崩溃应用程序动态加载图像

String uri = "@drawable/menu_howtouse"; 
    int imageResource = this.context.getResources().getIdentifier(uri, null, this.PACKAGE_NAME); 

    Drawable res = this.context.getResources().getDrawable(imageResource); 
    holder.iconImageView.setImageDrawable(res); 
+0

后堆栈跟踪 – Rahul

回答

1

崩溃,可能是因为背景是null非常简单。

试试这个代码,

int imageResource = this.context.getResources().getIdentifier("menu_howtouse", "drawable", this.PACKAGE_NAME); 

确保已如下初始化holder.iconImageView

holder.iconImageView = (ImageView) convertView.findViewById(R.id.iconImageView); 
+0

我尝试作为上面,但我仍然收到以下错误: java.lang.NullPointerException:试图调用虚拟方法'void android.widget.ImageView.setImageDrawable(android.graphics.drawable.Drawable)'null对象引用 int imageResource = this.context.getRes ources()。getIdentifier(“menu_howtouse”,“drawable”,this.PACKAGE_NAME); Drawable res = this.context.getResources()。getDrawable(imageResource); holder.iconImageView.setImageDrawable(res); –

+0

你可以发布'getView'方法吗? –

+1

看起来像你没有初始化'iconImageView'。 –

0

是相同的图像将被添加到每一行,你可以这样做:

holder.iconImageView.setImageResource(R.drawable.menu_howtouse); 

       OR 

如果多个图像形成添加绘制,然后让所有的可绘制的列表

List<int> imageList = new ArrayList<int>(); 
imageList.add(R.drawable.iamge1); 
imageList.add(R.drawable.iamge2); 
imageList.add(R.drawable.iamge3); 

将此传递给适配器类

Adapter adp = new Adapter(context, imageList); 

然后在onBindViewHolder做到这一点

holder.iconImageView.setImageResource(imageList.get(position)); 

      -- OR -- 

你可以尝试毕加索或滑翔,他们是整合

1

第二个参数可以为空,但你不应该需要设置。

您应该能够使用这个

context.getResources().getIdentifier("menu_howtouse", "drawable", this.PACKAGE_NAME); 

如果有什么事情有扔空指针,它可能是context因为这些其它方法不抛出任何异常

相关问题