如何在同一ViewGroup中添加多个合并布局时访问视图?

时间:2014-05-10 13:19:30

标签: android android-layout

我有一个GridLayout在ListView活动中显示玩家数据(在未来我可能会改为真正的ListView,但出于这个问题的目的,认为必须是GridLayout)。

在活动结果中,我必须向布局添加新行,并且由于所有行都具有相同的组件,因此我将所有行组件放在具有合并父级的新布局文件中,并且当需要添加行时,只需使用GridLayout作为rootView并附加到true。

问题是当我添加一个新行时,因为组件id是相同的,所以我一直在更改第一行的属性(TextView的文本)。

如何使用相同的ID访问其他视图?

1 个答案:

答案 0 :(得分:2)

我已多次搜索,我发现的唯一一件事就是你不能这样做

所以我必须得到类似的选择:

  • 直接在代码中添加。所以你弄乱了代码和UI。
  • <merge>元素更改为其他元素。所以它效率很低。
  • 使用索引获取视图而不是ID。你再次乱码和UI,但比第一个选项少一点。

在我的情况下,我使用索引让我使用代码:

inflater.inflate(R.layout.player_in_match, llPlayers, true);

// 4 Is because I have 4 elements in the R.layout.player_in_match
// and I wanna get the first of them.
TextView tvName = (TextView) llPlayers.getChildAt(llPlayers.getChildCount() - 4);

tvName.setText(name);