首页 > 代码库 > Android常用的Adapter
Android常用的Adapter
Android中常用的Adapter有ArrayAdapter、SimpleAdapter、SimpleCursorAdapter以及继承BaseAdapter的各种用户自定义Adapter;
这并不说前面三种Adapter不可继承,它们也是可以继承的,关于前面三种Adapter的具体使用可以参考网上的其他博客。
本篇博客主要记录继承BaseAdapter自定义Adapter的常规写法
public class MyAdapter extends BaseAdapter{ private List<Fish> list = new ArrayList<>(); private Context context; private LayoutInflater inflater; public MyAdapter(Context context, List<Fish> list){ this.context = context; this.list = list; inflater = LayoutInflater.from(context); } @Override public int getCount(){ return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position){ return position; } @Override public View getView(int position, View convertView, ViewGroup parent){ ViewHolder viewHolder; if (convertView == null){ viewHolder = new ViewHolder(); convertView = inflater.inflate(R.layout.list_item, null); viewHolder.textView = (TextView)convertView.findViewById(R.id.text_item); convertView.setTag(viewHolder); }else { viewHolder = (ViewHolder)convertView.getTag(); } ActivityAttr activityAttr = list.get(position); viewHolder.textView.setText(activityAttr.getName()); return convertView; } class ViewHolder{ TextView textView; } }
上面的getCount、getItem、getItemId、getView四个方法都需要重写,viewHold和convertView主要为了提高list的流畅性,减小系统开销
其中viewHold可以让程序只有第一次加载时才需要用findViewById去加载相应组件,而convertView可以缓存已经显示过的list,第二个显示不需要再次加载,直接显示即可
Android常用的Adapter
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。