我有一个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。非常感谢。 –