使用自定义的Adapter
使用自定义的Adapter
关于性能使用convertView回收试图,性能提高200%
使用ViewHolder性能再提高50%
继承BaseAdapter类 实现其中的方法,注意getView(),其中是最重要的一个重写方法。
其中使用LayoutInflater将一个xml解释为一个View,然后将传来的数据存入View中。
?
可以使用itemAdapter.notifyDataSetChanged();通知Adapter内容已经改变 进行刷新
?
package com.shinestudio.hexcoversion.adapter;import java.util.List;import java.util.Map;public class ItemAdapter extends BaseAdapter { static class ItemViewHolder { TextView t_ori; TextView t_bin; TextView t_dec; TextView t_hex; } private static LayoutInflater inflater; private String[] tag; private List<Map<String, String>> data; public ItemAdapter(Context context, String[] tag, List<Map<String, String>> data) { inflater = LayoutInflater.from(context); this.tag = tag; this.data = data; } @Override public int getCount() { return data.size(); } @Override public Object getItem(int position) { return data.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ItemViewHolder holder; if (convertView == null) { convertView = inflater.inflate(R.layout.listitem, null); holder = new ItemViewHolder(); holder.t_ori = (TextView) convertView.findViewById(R.id.tv_ori); holder.t_bin = (TextView) convertView.findViewById(R.id.tv_bin); holder.t_dec = (TextView) convertView.findViewById(R.id.tv_dec); holder.t_hex = (TextView) convertView.findViewById(R.id.tv_hex); convertView.setTag(holder); } else { holder = (ItemViewHolder) convertView.getTag(); } holder.t_ori.setText((String) data.get(position).get(tag[0])); holder.t_bin.setText((String) data.get(position).get(tag[1])); holder.t_dec.setText((String) data.get(position).get(tag[2])); holder.t_hex.setText((String) data.get(position).get(tag[3])); return convertView; }}?
?