public class MyAdapter extends BaseAdapter { ...... private HashMap<Integer, View> hm = new HashMap<Integer, View>(); ...... @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (hm.get(position) == null) { convertView = View.inflate(context, R.layout.item, null); holder = new ViewHolder(); ...... convertView.setTag(holder); hm.put(position, convertView); } else { convertView = hm.get(position); holder = (ViewHolder) convertView.getTag(); } ...... return convertView; } class ViewHolder { ...... } }
Android ListView 使用HashMap解决复用问题
最新推荐文章于 2020-04-28 05:22:48 发布
该博客介绍了如何在Android中通过使用HashMap来优化ListView的性能,避免复用问题。在自定义Adapter中,创建了一个HashMap来存储每个位置的View,当需要获取View时,首先检查HashMap中是否存在,如果不存在则进行初始化并添加到HashMap,否则直接从HashMap中获取,以此提高列表滚动时的性能。
摘要由CSDN通过智能技术生成