我有一个LinearLayout布局资源文件(xml),其中嵌入了多个不同方向的LinearLayout。在其中一个嵌入式LinearLayouts中,我有一些TextView,我想从我的java代码中动态更改,但出于某种原因,当我尝试设置这些TextViews的ID时,它会抛出一个错误。你知道是什么原因造成的吗?此外,是否有任何修复或替代方法来访问嵌入的LinearLayout中的这些TextViews?提前谢谢。
编辑:没关系,我觉得自己像个白痴。我忘记了“@ + id /” 如果我为某些人浪费时间,我很抱歉。我想我过去四天的编码太多了。我每天都工作到凌晨2点
答案 0 :(得分:1)
您应该能够为xml布局文件中的每个TextView
分配一个ID。如果您没有显式声明适当的id资源(通常情况),那么您需要使用特殊语法:
<TextView android:id="@+id/view_id . . . />
如果不存在,@+
语法将自动创建指定名称的id。 (参见docs for android:id
。)
如果您使用语法:
<TextView android:id="@id/view_id . . . />
然后你需要显式创建一个id资源(在res / values / any_file.xml中):
<item type="id" name="view_id" />
无论您使用哪种方法,都可以使用以下代码访问代码中的TextView
:
TextView tv = (TextView) findViewById(R.id.view_id);
P.S。看到你的代码后,问题非常明确:正如错误信息所示,你不能使用字符串作为视图ID。因此,例如,您需要将android:id="limVal"
替换为android:id="@+id/limVal"
,并在整个布局文件中使用TextView limValView = (TextView) findViewById(R.id.limVal);
。然后在您的代码中,您可以使用
{{1}}