Java 将Int转换为ImageView
下面是一些代码:Java 将Int转换为ImageView,java,android,android-studio,Java,Android,Android Studio,下面是一些代码: 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转
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,我想在这些ImageView中添加带有图像的列表。)您可以使用设置ImageResource
。当你调用你的文章类时,也传递视图
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]);
}
您可以使用setImageResource
。当你调用你的文章类时,也传递视图
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]);
}
如果您有一个列表,您必须编写一个RecyclerAdapter类来保存和设置列表中的项目
见此:
如果您有一个列表,您必须编写一个RecyclerAdapter类来保存和设置列表中的项目
见此:
您的代码块显示了一个文章
类,该类应该附加到回收视图
,并带有相应的图像,这是我从您的问题中假设的。
在你的评论中你有
for(inti=0;i<30;++i){articles.add(newarticle(i))}
将30设置为硬编码限制,而应将其设置为图像id数组的大小李>
您知道在添加文章之前正在增加索引,这将导致您丢失索引0处的id李>
所有这些都是通过构造函数传递一个int
来获取文章类中该数组索引处的id
对象类中不应该有一个静态
图像数组李>
将您的文章
类更改为如下所示:
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]);
}
现在,当您循环浏览并添加文章时,应该是这样的:
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]);
}
for(int i=0;i
现在,您正在将imageID
设置为imagedarray
中的任何值,一旦进入RecyclerView
的onBindViewHolder()
方法,您就可以使用
setImageDrawable(ContextCompat.getDrawable(context,article(i).getImageID));
您的代码块显示了一个article
类,该类应该附加到RecyclerView
,并带有相应的图像,这是我从您的问题中假设的。
在你的评论中你有
for(inti=0;i<30;++i){articles.add(newarticle(i))}
将30设置为硬编码限制,而应将其设置为图像id数组的大小
您知道在添加文章之前正在增加索引,这将导致您丢失索引0处的id
所有这些都是通过构造函数传递一个int
来获取文章类中该数组索引处的id
对象类中不应该有一个静态
图像数组
将您的文章
类更改为如下所示:
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]);
}
现在,当您循环浏览并添加文章时,应该是这样的:
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]);
}
for(int i=0;i
现在,您正在将imageID
设置为imagedarray
中的任何值,一旦进入RecyclerView
的onBindViewHolder()
方法,您就可以使用
setImageDrawable(ContextCompat.getDrawable(context,article(i).getImageID))
您想要实现什么?为什么要将int转换为ImageView?在提问时要更加努力。花一分钟纠正语法和拼写。可能与您想要实现的目标重复?为什么要将int转换为ImageView?在提问时要更加努力。花一分钟纠正您的语法和拼写mar和拼写。可能与Wait重复,我测试了它。它工作正常,但它是MainActivity的一些代码:for(int i=0;i<30;++i)articles.add(new Article(i));不建议使用setImageResource
,因为它在UI线程上解码位图
。等等,我测试了它。它正常工作,但它是一些主要活动的代码:for(int i=0;i<30;++i)articles.add(new Article(i));不建议使用setImageResource
,因为它会在UI线程上解码位图
。