You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android从iiti数据库获取图片名并显示至ImageView的代码咨询

问题分析与修复方案

从你的代码和业务描述来看,核心问题是调用了错误的实体类方法来获取图片名称:你数据库中存储Drawable图片名的字段是ImgName,但代码里却误用了iiti.getLatLat()来生成资源ID,这必然找不到对应的图片资源。

修正后的完整代码

TextView descText = (TextView) findViewById(R.id.descriptionText);
descText.setText(iiti.getneighborhood() + "\n");

ImageView iv = (ImageView) findViewById(R.id.imageView);
// 替换为对应ImgName字段的getter方法(请根据你的实体类实际命名调整)
String imgName = iiti.getImgName();

// 增加空值与资源存在性判断,避免崩溃
if (imgName != null && !imgName.isEmpty()) {
    int resourceId = getResources().getIdentifier(imgName, "drawable", getPackageName());
    if (resourceId != 0) {
        iv.setImageResource(resourceId);
    } else {
        // 资源不存在时设置默认占位图(需提前在drawable中添加default_image)
        iv.setImageResource(R.drawable.default_image);
    }
} else {
    // 图片名为空时设置默认占位图
    iv.setImageResource(R.drawable.default_image);
}

关键注意事项

  • 匹配实体类getter方法:确保你调用的是对应ImgName字段的getter方法,比如如果实体类定义的是public String getImageName(),就替换成这个方法名,必须和数据库字段的映射逻辑一致。
  • 遵守资源命名规则:Drawable文件夹内的图片文件名只能包含小写字母、数字、下划线和点号,不能有大写字母或特殊字符,否则getIdentifier()会返回0(代表找不到资源)。
  • 异常场景处理:必须添加空值和资源存在性判断,避免因图片名缺失、拼写错误导致的空指针异常或无效资源加载,设置默认图能保证界面的完整性。

内容的提问来源于stack exchange,提问作者Rakan Habab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:20:26