如何将许多TextView与其资源相链接

时间:2016-12-19 20:17:54

标签: java android reference

我想将许多TextView与资源连接起来,例如,我在xml文件中有21个TextView,它们都创建了一个表。我想简单地将它们附加到我的代码中,但我想避免使用21行代码。我想要循环它,但我可能错了,因为它不起作用。

for (int id = 1; id < 21; id++)
    textView[id] = (TextView) findViewById(R.id.textView+"id");
}

2 个答案:

答案 0 :(得分:0)

您可以链接ViewGroup,这是您的表格,并迭代他们的孩子。 让我们假设我们有一个名为mLinearLayout的线性布局。

for(i=0; mLinearLayout.getChilds.size; i++){
    View child = mLinearLayout.getChildAt(i);
    if(child instanceof TextView)
       mList.add((TextView) child)
}

对于更复杂的布局,您可能需要递归函数来迭代子视图组。

祝你好运

答案 1 :(得分:0)

您可以尝试findViewById而不是findViewWithTag,因为现在您可以使用您想要的字符串参数。

当然,你可能需要调整一些东西才能使用它。

您的TextViews需要成为xml中父级布局的直接子级并标记它们:android:tag="mytext1"

然后在Java中,例如:

LinearLayout parentLayout = (LinearLayout) findViewById(R.id.parent);
 ...
textview[i] = (TextView) parentLayout.findViewWithTag("mytext" + i);

你可以循环findViewWithTag