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

如何创建TextView ID数组?声明时出现‘无法解析符号’报错

解决TextView数组初始化时“无法解析符号”的问题

我之前也踩过这个坑!你遇到的“无法解析符号oldtoday00”错误,本质是这些oldtoday00、oldtoday01之类的变量要么没被正确声明/初始化,要么和布局里的控件ID没对应上。咱们一步步来解决:

先搞清楚错误原因

出现这个错误的常见情况:

  • 布局文件里根本没给对应的TextView设置android:id="@+id/oldtoday00"这类ID
  • 代码里没通过findViewById()把变量和布局控件绑定,直接就把变量放进数组了
  • 变量名和布局里的ID拼写不一致(比如大小写、数字写错)

推荐的解决方案:用循环动态初始化数组(彻底避免重复代码)

既然你想减少重复代码,最好的方式就是通过循环动态获取每个TextView的ID,不用一个个写findViewById()。步骤如下:

1. 确保布局里的TextView都有规范的ID

比如你的布局里每个TextView的ID是oldtoday00、oldtoday01...oldtodayN:

<TextView
    android:id="@+id/oldtoday00"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

<TextView
    android:id="@+id/oldtoday01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

<!-- 其他TextView依此类推 -->

2. 在代码里循环初始化数组

用getResources().getIdentifier()动态拼接ID名称并获取资源ID,然后逐个初始化数组元素:

// 假设你有10个TextView(从oldtoday00到oldtoday09)
int textViewTotal = 10;
TextView[] textViewArray = new TextView[textViewTotal];

for (int i = 0; i < textViewTotal; i++) {
    // 拼接ID名称,比如i=0时是"oldtoday00",i=1时是"oldtoday01"
    String idName = "oldtoday" + String.format("%02d", i);
    // 获取对应的资源ID
    int resId = getResources().getIdentifier(idName, "id", getPackageName());
    // 绑定控件到数组元素
    textViewArray[i] = findViewById(resId);
}

如果是在Fragment里使用,记得把findViewById()换成requireView().findViewById(),getPackageName()换成requireContext().getPackageName()。

备选方案:先逐个初始化变量再放进数组(不推荐,但能解决错误)

如果你暂时不想用动态获取的方式,那必须先给每个变量绑定控件,再放进数组:

// 先逐个绑定布局控件
TextView oldtoday00 = findViewById(R.id.oldtoday00);
TextView oldtoday01 = findViewById(R.id.oldtoday01);
TextView oldtoday02 = findViewById(R.id.oldtoday02);
// ... 其他TextView

// 再初始化数组
TextView[] a = {oldtoday00, oldtoday01, oldtoday02, ...};

不过这种方式还是有重复代码,不符合你想简化的初衷,所以更推荐第一种动态循环的方法。

额外注意事项

  • 确保textViewTotal的数值和你实际的TextView数量一致,避免数组越界
  • 如果你的ID命名不是oldtoday+两位数字,记得调整idName的拼接逻辑
  • 要是用的是ViewBinding/DataBinding,也可以通过类似的循环方式获取控件,原理是一样的

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:42:55