我对android很新。我必须动态地将图像加载到回收器视图行。我使用以下代码和应用程序由于null对象而崩溃。
<!DOCTYPE html>
<html>
<head>
<title>Hello</title>
<script src="TryClass.js" type="text/javascript">
prop = new SetProp(1000,1000);
</script>
</head>
<body>
<h1>Hello</h1>
<canvas id="canvas" width="prop.getWidth() " height="prop.getHeight();" style="border:1px solid #000000"></canvas>
</body>
</html>
答案 0 :(得分:1)
崩溃可能是因为上下文是null
。
试试这段代码,
int imageResource = this.context.getResources().getIdentifier("menu_howtouse", "drawable", this.PACKAGE_NAME);
确保您已按如下方式初始化holder.iconImageView
,
holder.iconImageView = (ImageView) convertView.findViewById(R.id.iconImageView);
答案 1 :(得分:1)
第二个参数可以为null,但您不需要设置它。
你应该可以使用这个
context.getResources().getIdentifier("menu_howtouse", "drawable", this.PACKAGE_NAME);
如果有任何东西抛出nullpointer,它可能是context
,因为那些其他方法不会抛出任何异常
答案 2 :(得分:0)
是否可以将相同的图像添加到每行中:
holder.iconImageView.setImageResource(R.drawable.menu_howtouse);
OR
如果要添加多个图像可绘制,则列出所有Drawables
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 --
你可以尝试毕加索或滑行,它们很容易整合