我有一個ListView已經由包含使用適配器的數據的行填充。 行佈局是「RelativeLayout」類型,包含各種視圖對象,其中一個是「@ + id/bar_fill」。如何獲取複雜ListView行視圖中的視圖?
我有一個循環遍歷ListView的所有孩子,我想「獲得」我上面提到的視圖項目。
我正在使用的代碼是:
ListView list = getListView();
int count = list.getCount();
for (int i = 0; i < count; i++)
{
RelativeLayout row = (RelativeLayout) list.getChildAt(i);
View bar = row.findViewById(R.id.bar_fill);
}
然而,當它到達崩潰的最後一行。當我評論它並做了
System.out.println(findViewById(R.id.bar_fill));
它返回空值。
我在做什麼錯?
這是正確的想法,但您應該使用ViewHolder,如圖所示,以避免convertView!= null時額外調用findViewById。在許多設備上,它可以在性能上產生顯着的差異:http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List14.html – adamp
不錯的adamp。非常感謝。 –