我在运行时向布局添加视图。 你的观点是这样的:
<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的文本而不必去找这些方式?
答案 0 :(得分:2)
当你夸大视图时,找到它的孩子并为每个孩子设置一个特定的标签(使用setTag()
)。当你需要识别时,使用getTag()
。你可以在使用中找到好主意{3}}和What is the main purpose of setTag() getTag() methods of View?