我有一个包含某些对象的 ExpandableListView。这些对象存储了一个属性,该属性确定了它们所在视图的背景。我的问题是,当 android 回收视图时,如何确保这些背景始终正确?我遇到的问题是,当我在某行更改此背景确定属性并且该子行上的 xml 资源更改时,为列表创建的下一个项目使用相同的视图,即使它可能不正确。这是我的自定义 ExpandableListViewAdapter 下面的代码,它确定 ExpandableListView 子行视图的 xml 资源。
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
ToDoItem item = mParent.get(groupPosition).getParentChildren().get(childPosition);
view = convertView;
if(view == null) {
// Check item priority and set background accordingly
if(item.getPriority() == 2) {
view = inflater.inflate(R.layout.list_item_medium, null);
} else if(item.getPriority() == 3) {
view = inflater.inflate(R.layout.list_item_high, null);
} else if(item.getPriority() == 1) {
view = inflater.inflate(R.layout.list_item, null);
}
}
TextView tv = null;
if (view != null) {
tv = (TextView) view.findViewById(R.id.tasktext);
tv.setText(item.getTask());
}
return view;
}
如您所见,我正在检查视图是否等于 null 以确保我的应用程序以可接受的速度运行。如何在保持背景功能的同时保持优化?