簡體   English   中英

將Int轉換為ImageView

[英]Convert Int to ImageView

這是一些代碼:

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轉換為android.widget.ImageView或類似的東西?

(我創建了RecyclerView,並且其中包含很多ImageView,並且我希望這些ImageView包含帶有圖像的列表。)

您可以使用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]);
}

如果有列表,則必須編寫一個RecyclerAdapter類來保存和設置列表項。

看到這個: 在Android中將列表和網格與RecylerView一起使用-教程

您的代碼塊顯示了應該與相應圖像一起附加到RecyclerViewArticle類,這是我從您的問題中得出的假設。 在您的評論中

for (int i = 0; i < 30; ++i) { articles.add(new Article(i))}

  1. 您將30設置為硬編碼限制,而應將其設置為圖像ID數組的大小。
  2. 您知道在添加文章之前要增加索引,這會使您迷失索引0處的ID。
  3. 這一切都是通過構造函數傳遞一個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]);
}

現在,一旦您進入RecyclerViewonBindViewHolder()方法,就可以將imageID設置為imageIDArray任何值,然后可以通過使用輕松地設置正確的圖像

setImageDrawable(ContextCompat.getDrawable(context, article(i).getImageID));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM