1、Adapter的基本写法
public class DemoAdapter extends BaseAdapter { PRivate Context mContext; private List<Info> mData; public DemoAdapter(Context context, List<Info> data) { super(); this.mContext = context; this.mData = data; } @Override public int getCount() { return mData.size(); } @Override public Object getItem(int position) { return mData.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; //convertView复用 if (convertView == null) { convertView = View.inflate(mContext, R.layout.item_select, null); //初始化ViewHolder holder = new ViewHolder(); //控件初始化 holder.icon = (ImageView) convertView.findViewById(R.id.item_select_icon); holder.name = (TextView) convertView.findViewById(R.id.item_select_name); //将holder保存到view里 convertView.setTag(holder); }else{ //从convertView里取出holder,不用再次做findViewById holder = (ViewHolder) convertView.getTag(); } //绑定数据 //mData.get(position); Info data = (Info) getItem(position); //holder.icon.setImageBitmap(bitmap); //holder.icon.setImageResource(R.drawable.ic_contact); holder.icon.setImageDrawable(data.getIcon); holder.name.setText(data.getName()); return convertView; } /** * 可看做是控件的持有者,用来保存findViewById找到的控件 * 当convertView复用时,不需要再次做findViewById的操作,从而提高效率 */ static class ViewHolder{ ImageView icon; TextView name; }}待续。。。
新闻热点
疑难解答