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

Android Studio点击按钮显示字符串文本与图片问题求助

问题解答:Android按钮点击显示字符串与图片的问题

嘿,我来帮你搞定这个问题!你遇到的getResources()和R.strings标红问题,以及文本无法显示的问题,都是小细节出错了,咱们一步步来修复:

一、标红问题的原因及修复

  • getResource()标红:正确的方法名是getResources()(注意末尾多了个s),Android中获取资源的系统方法是getResources(),少了s就会被识别为不存在的方法。
  • R.strings标红:Android资源引用里,字符串资源的正确写法是R.string.xxx,这里是单数string而非复数strings,把R.strings.delivery_address改成R.string.delivery_address就能解决。

二、文本显示的完整解决方案

你当前的代码只处理了图片显示,文本部分还缺少对应的承载控件,需要先在布局中添加TextView,再在代码中完成文本设置:

步骤1:修改布局文件(activity_main.xml)

确保布局包含Button、ImageView和TextView:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">

    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="点击显示内容"/>

    <ImageView
        android:id="@+id/img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"/>

    <TextView
        android:id="@+id/tv_content"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"/>

</LinearLayout>

步骤2:修正后的Java代码

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    
    Button btn = findViewById(R.id.btn);
    final ImageView img = findViewById(R.id.img);
    final TextView tvContent = findViewById(R.id.tv_content); // 获取TextView控件

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            // 修复资源引用错误
            String myString = getResources().getString(R.string.delivery_address);
            // 设置图片
            img.setImageResource(R.drawable.bb);
            // 设置TextView文本
            tvContent.setText(myString);
        }
    });
}

三、额外注意事项

  • 确认strings.xml中存在目标字符串资源,示例如下:
    <string name="delivery_address">你的配送地址文本</string>
    
  • 确认drawable文件夹中存在名为bb的图片资源(如bb.png/bb.webp)。
  • 如果你的文本是HTML格式,需要用Html.fromHtml()解析(注意版本适配):
    // 处理HTML格式文本
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        tvContent.setText(Html.fromHtml(myString, Html.FROM_HTML_MODE_LEGACY));
    } else {
        tvContent.setText(Html.fromHtml(myString));
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:16:49