Android BaseAdapter.getView回收视图

时间:2016-05-10 01:35:22

标签: android android-layout android-view

我正在扩展Android BaseAdapter。

关于方法

getView (int position, View convertView, ViewGroup parent)

文档说

  

您应该检查此视图是否为非null且类型是否合适   在使用之前。如果无法将此视图转换为显示   正确的数据,这种方法可以创建一个新的视图。

我想知道如何检查View是否属于合适的类型?

让我说我期待一个有两个TextView孩子的LinearLayout?我该如何正确检查?

这是正确的吗?

if(convertView instanceof LinearLayout){

if (convertView.findViewById(someid) != null) {
//its what I expect...
}

}

2 个答案:

答案 0 :(得分:1)

如果您的适配器中只有1种视图类型,那么您只需要检查它是否为非空。

检查视图类型仅适用于您有多种视图类型的情况(当您覆盖getViewTypeCount()以返回除1之外的任何内容时),那么您需要确定它基于位置的类型。基本上,如果你不覆盖getViewTypeCount(),那么只需检查null。

答案 1 :(得分:0)

如果您有多个视图,那么创建一个ViewHolder类是合适的,这可以帮助您在运行时获取布局视图,因为您在每个视图中使用了一个持有者