我正在扩展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...
}
}
答案 0 :(得分:1)
如果您的适配器中只有1种视图类型,那么您只需要检查它是否为非空。
检查视图类型仅适用于您有多种视图类型的情况(当您覆盖getViewTypeCount()以返回除1之外的任何内容时),那么您需要确定它基于位置的类型。基本上,如果你不覆盖getViewTypeCount(),那么只需检查null。
答案 1 :(得分:0)
如果您有多个视图,那么创建一个ViewHolder类是合适的,这可以帮助您在运行时获取布局视图,因为您在每个视图中使用了一个持有者