以下是一些代码:
public class Article {
(...)
private static int[] sImages = { R.drawable.ic_picture};
private ImageView mImage;
public Article(int a)
{
mImage = sImages[a];
}
在:
mImage = sImages[a];
有这个错误:
不兼容的类型
必需:android.wiget.ImageView
发现:Int
如何将int转换为android.widget.ImageView或类似的东西?
(我创建了RecyclerView,其中有很多ImageView,我希望将List with Images与这些ImageViews一起使用。)
答案 0 :(得分:2)
您可以使用setImageResource
。当您调用您的Article类时,也会传递视图。
private static int[] sImages = { R.drawable.ic_picture};
private ImageView mImage;
public Article(int a, View view)
{
mImage = (ImageView) view.findViewById(R.id.image);
mImage.setImageResource(sImages[a]);
}
答案 1 :(得分:0)
如果您有一个列表,则必须编写一个RecyclerAdapter类来保存和设置列表项。
看到这个: Using lists and grids in Android with RecylerView - Tutorial
答案 2 :(得分:0)
您的代码块显示了一个Article
类,它应该附加到RecyclerView
并带有相应的图像,这是我从您的问题中假设的。
在你的评论中你有
for (int i = 0; i < 30; ++i) { articles.add(new Article(i))}
int
来获取Article class
中该数组索引的id,你不应该在对象类中拥有static
个数组。 将您的Article
课程改为:
public class Article {
...
int imageID;
public Article(int imageID) {
this.imageID = imageID;
}
public int getImageID() {
return imageID;
}
...
}
现在当你循环并添加你的文章时,它应该是这样的:
for (int i = 0; i < imageIDArray.length; i++) {
articles.add(new Article(imageIDArray[i]);
}
现在,您将imageID
设置为imageIDArray
中onBindViewHolder()
的{{1}}方法中的任何值,然后您可以轻松设置RecyclerView
使用
setImageDrawable(ContextCompat.getDrawable(context, article(i).getImageID));