簡體   English   中英

從在 Android 中以編程方式創建的父視圖中查找子視圖

[英]Finding child views from parent view created programmatically in Android

對於 Android 應用程序,我使用 GridView 並擴展 BaseAdapter 來組織其內容。 對於我在擴展 BaseAdapter 類中重寫的函數 getView,我創建了一個 LinearLayout,我將一個 ImageView 和 3 個 TextView 附加到它。 現在,我需要實現 convertView,但是因為我以編程方式創建了我的視圖,所以我不認為我可以使用 findViewById 來查找這些子視圖來更改它們的屬性(如文本和位圖)。

我有一個想法,當我創建它們時,為每個視圖分配一個與不同類型視圖相關的唯一 ID(例如:將我的名稱 textview 的 id 指定為 1,將描述 textview 的 id 指定為 2 等),但我不確定是否每個視圖中的 id 必須是唯一的,無論它們是否是同一種視圖。

最終,我如何找到屬於以編程方式創建的線性布局視圖的一部分的子視圖?

您可以通過getChildAt()獲得 LinearLayout 的子代,但很難區分您得到的究竟是什么子代。

我認為分配 ID 是更好的方法。 您可以為視圖分配 ID,然后通過findViewById()獲取視圖。 每個 LinearLayout 的 ID 不需要是唯一的。

像這樣的東西:

// Give more sensible names to ID's
int IMAGEVIEW_ID = 0;
int TEXTVIEW1_ID = 1;
int TEXTVIEW2_ID = 2;
int TEXTVIEW3_ID = 3;

imageView.setId(IMAGEVIEW_ID);
textView1.setId(TEXTVIEW1_ID);
textView2.setId(TEXTVIEW2_ID);
textView3.setId(TEXTVIEW3_ID);

...
// somewhere later
ImageView imageView = (ImageView) convertView.findViewById(IMAGEVIEW_ID);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM