android - 在同一个 ViewGroup 中添加多个合并布局时如何访问 View ?

标签 android android-layout

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

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

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

如何访问具有相同 ID 的其他 View ?

最佳答案

我搜索了很多次,唯一发现的是You can't do it

所以我必须得到替代方案,例如:

  • 然后直接在代码中添加。所以你弄乱了代码和 UI。
  • 更改 <merge>元素到其他。所以效率很低。
  • 使用索引而不是 ID 获取 View 。同样,您会混淆代码和 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);

关于android - 在同一个 ViewGroup 中添加多个合并布局时如何访问 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23581536/

相关文章:

android - 将 String[] 从一个 Activity 传递到另一个 Activity

java - 使用 Outpan 的 JAVA API

Android - VideoView 的缓冲延迟

android - 角不适用于android drawable中的环形

android - 如何在范围内使 `this`引用Kotlin Android Extension类型类?

java - OSMDroid - map 不显示

android - layout_weight 改变图像尺寸

parsing - 如何在 Android 中解析 Ksoap2 响应

android - 如何在 Fragment - Android 中使用 PlaceAutoCompleteFragment 小部件?

android - 如何为android创建这种布局