如何在嵌入LinearLayout中引用TextViews?

时间:2013-07-31 21:15:03

标签: java android xml layout android-linearlayout

我有一个LinearLayout布局资源文件(xml),其中嵌入了多个不同方向的LinearLayout。在其中一个嵌入式LinearLayouts中,我有一些TextView,我想从我的java代码中动态更改,但出于某种原因,当我尝试设置这些TextViews的ID时,它会抛出一个错误。你知道是什么原因造成的吗?此外,是否有任何修复或替代方法来访问嵌入的LinearLayout中的这些TextViews?提前谢谢。

编辑:没关系,我觉得自己像个白痴。我忘记了“@ + id /” 如果我为某些人浪费时间,我很抱歉。我想我过去四天的编码太多了。我每天都工作到凌晨2点

1 个答案:

答案 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" />

请参阅docs on ID resources

无论您使用哪种方法,都可以使用以下代码访问代码中的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}}