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

Android开发中findViewById获取txt_detail_Price为空问题咨询

问题原因及解决方案

核心原因:资源ID命名不符合Android规范

Android资源命名规则明确要求,所有资源名称(包含ID、布局文件名、资源文件名等)只能使用小写字母a-z、数字0-9和下划线,不允许出现大写字母。编译工具aapt/aapt2在处理资源时,会自动将所有ID名称转换为全小写格式生成R类字段:

  • XML中定义的@+id/txt_detail_Price(首字母P大写),编译后对应的R类字段为R.id.txt_detail_price(全小写)
  • 代码中调用的R.id.txt_detail_Price实际不存在,因此findViewById返回null
  • 另一个ID@+id/txt_detail_pPrice可以正常工作,是因为其转成全小写后为txt_detail_pprice,和代码中引用的ID编译后实际匹配值一致

其他可能原因

  • 多布局覆盖:如果项目下有多个适配不同设备的activity_details.xml布局文件,部分布局中没有添加txt_detail_Price这个TextView,运行在对应设备时就会找不到该控件
  • 构建缓存异常:Android Studio的构建缓存损坏,导致R类没有同步最新的ID定义

解决方案

  1. 优先修改XML中的ID命名,统一使用全小写+下划线的格式,例如将两个价格ID分别改为@+id/txt_detail_original_price和@+id/txt_detail_current_price,彻底避免大小写混淆
  2. 同步修改代码中对应的R.id引用
  3. 执行菜单栏 Build → Clean Project 再执行 Build → Rebuild Project 清理旧的构建缓存
  4. 如果存在多布局适配,检查所有activity_details.xml文件,确保都添加了对应ID的控件

内容的提问来源于stack exchange,提问作者reza.fathi921

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:57:02