1

我在运行时向布局添加视图。你的观点是这样的:

<LinearLayout android:id="@+id/ll1">
<LinearLayout android:id="@+id/ll2" >
    <ImageView android:id="@+id/iv1" />
    <TextView android:id="@+id/tv1"/>
    <ImageView android:id="@+id/iv2"/>
</LinearLayout>

(为了简单起见,我花了很多时间)

现在在代码中,我将任意数量的这些添加到布局中。那么如何在每次添加此视图时访问 ImageViews 和 TextViews?

目前我有这种复杂的方式来遍历每个孩子并做一个

if (View instanceof ImageView)

如果我要调用parentView.getChildAt(0)(父视图是 ll2),这是否总是返回 iv1?在“1”处,这总是会返回 tv1 吗?

然后我一直将这些对象存储在自身的向量中,以便稍后调用它们。

有没有更简单的方法来做到这一点?就像我第一次添加整个内容时一样,有没有一种方法可以设置图像视图的来源,并设置文本视图的文本,而不必以这种方式找到它们?

4

1 回答 1

2

当你膨胀你的视图时,找到它的孩子并为每个孩子设置一个特定的标签(使用setTag())。当你需要识别时,使用。你可以在 setTag的主要目的是什么中getTag()找到关于 getTag 和 setTag 的使用的好主意( ) 视图的 getTag() 方法?Android:setTag() 和 getTag() 用于更改控件的用法。

于 2012-10-18T02:46:08.203 回答