识别子视图的简便方法

时间:2012-10-18 02:04:33

标签: android layout view viewgroup

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

<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和TextView?

目前,我有这种复杂的方式来处理每个孩子并做一个

if (View instanceof ImageView)

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

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

有更简单的方法吗?就像我第一次添加整个东西一样,有没有办法可以设置图像视图的来源,并设置textviews的文本而不必去找这些方式?

1 个答案:

答案 0 :(得分:2)

当你夸大视图时,找到它的孩子并为每个孩子设置一个特定的标签(使用setTag())。当你需要识别时,使用getTag()。你可以在使用中找到好主意{3}}和What is the main purpose of setTag() getTag() methods of View?

中的getTag和setTag