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

ImageView点击切换图片失效:点击后图片消失问题求助

解决ImageView点击后图片消失的问题

看起来你遇到的问题是ImageView点击后图片消失,其实本质是没有正确加载到目标图片,我帮你梳理几个关键问题点,一步步修复:

1. 给ImageView添加android:tag属性

你的XML代码里的ImageView没有设置android:tag,但你在Java代码里通过v.getTag()来获取数组索引a——这会导致解析失败,拿到错误的图片名称,最终加载不到资源。

修改你的ImageView XML,加上对应字符串数组索引的tag(比如你想加载kartu数组里第1个元素,就填0):

<ImageView
    android:id="@+id/img_11"
    android:layout_width="50dp"
    android:layout_height="wrap_content"
    android:layout_marginRight="5dp"
    android:layout_weight="1"
    android:onClick="kartu_klik"
    android:tag="0" <!-- 这里填写对应数组的索引值 -->
    app:srcCompat="@drawable/back" />

2. 修正getIdentifier的包名参数

你代码里写的"package.name"是占位符,必须替换成你应用的实际包名(比如com.yourname.cardgame)。如果包名错误,getIdentifier会返回0,调用setImageResource(0)就会让ImageView显示空白。

更稳妥的方式是用getPackageName()动态获取包名,避免硬编码错误:

int image = getResources().getIdentifier(image_name, "drawable", getPackageName());

3. 检查字符串数组kartu的内容

确保kartu数组里的每个图片名称和drawable文件夹里的图片文件名完全一致——特别注意大小写敏感!比如drawable里是club.png,数组里就不能写成Club或者club_card,否则会找不到资源。

4. 优化代码并增加日志辅助排查

可以在Java代码里加一些日志,帮你确认每一步的参数是否正确,同时优化代码逻辑:

import android.util.Log;

public void kartu_klik(View v) {
    // 打印当前View的tag值,确认是否正确
    Log.d("CardClick", "View Tag: " + v.getTag());
    
    int a = Integer.parseInt((String) v.getTag());
    String image_name = kartu[a];
    Log.d("CardClick", "Target Image Name: " + image_name);
    
    int imageResId = getResources().getIdentifier(image_name, "drawable", getPackageName());
    // 如果返回0,说明找不到对应资源
    Log.d("CardClick", "Image Resource ID: " + imageResId);
    
    if (imageResId == 0) {
        Log.e("CardClick", "ERROR: Could not find image with name: " + image_name);
        return;
    }
    
    ImageView img = (ImageView) v; // 直接用v强转,不用findViewById更高效
    img.setImageResource(imageResId);
}

按照这几步调整后,应该就能正常切换图片了。

内容的提问来源于stack exchange,提问作者Reinhard Armstrong

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:25:05