Adaper中的setImageResource问题

Adaper中的setImageResource问题

public View getView(int i, View view, ViewGroup viewGroup) {


    ViewHolder holder;
    if (view == null) {
        view = layoutInflater.inflate(R.layout.gridview_item, null);
        holder = new ViewHolder();
        holder.imageView = view.findViewById(R.id.ItemImageView);
        holder.textView = view.findViewById(R.id.ItemTextView);
        view.setTag(holder);
    } else {
        holder = (ViewHolder) view.getTag();
    }

    holder.textView.setText(gridViewItemList.get(i).getText());

    //此处无法设置GridView的图片,无法运行,会报错
    //gridViewItemList中有getImage()和getText(),在Fragment中定义好了    
    holder.imageView.setImageResource(gridViewItemList.get(i).getImage());

    //直接写R.drawable.XX可以运行
    //holder.imageView.setImageResource(R.drawable.cp);

    return view;
}


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

你查看一下as底部Android Monitor中的红色信息,显示的什么错误信息。gridViewItemList.get(i).getImage()取到的是资源id吗?你文本那句可以正常执行吗?另外,如果是资源id,需要你项目中有对应的资源图片。如果没有就不能用setImageResource(),可以使用setImageBitmap(bitmap)

  • Excelly 提问者 #1
    是Logcat中的提示吗?提示的是android.content.res.Resources$NotFoundException: Resource ID XXXXX。
    2018-03-15 13:14:00
  • irista23 回复 提问者 Excelly #2
    提示的资源id找不到,因为工程资源目录下没有对应的资源,如果你想显示json数据中的服务器图片,需要在getView()中得到服务器图片地址url,然后单开一个异步任务去服务器取图片数据,再使用setImageBitmap(bitmap)设置给ImageView,这部分内容会在后面的GridView课程中有详细讲解。
    2018-03-15 14:29:23
  • Excelly 提问者 #3
    非常感谢!
    2018-03-15 17:01:16
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Android网络操作与数据存储2018版
  • 参与学习           人
  • 提交作业       307    份
  • 解答问题       1613    个

本专题是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理。介绍了Android内外部文件存储、轻量级数据库SQLite的使用。利用屏幕适配、状态保持、百度地图解决实际问题。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师