BaseAdapter 自定义适配器的使用以及优化

来源:互联网 发布:linux谁开发的 编辑:程序博客网 时间:2024/05/17 23:05
public class MyAdapter extends BaseAdapter {    // BaseAdapter是一个抽象类不能new只能被继承    Context context;    ArrayList<HashMap<String, Object>> list;    LayoutInflater minflater;    // 创建构造方法用于传值使用    public MyAdapter(Context context, ArrayList<HashMap<String, Object>> list) {        // 把局部变量赋值给全局变量        this.context = context;        this.list = list;        minflater = LayoutInflater.from(context);    }    class ViewHolder {        TextView content;        ImageView img;    }    // 返回数据的条目,得到数据的个数    // 根据数据的条目,系统会自动设置ListView有多少条    @Override    public int getCount() {        // TODO Auto-generated method stub        return list.size();    }    // 得到具体的数据,返回某一条数据 一般不常用    // 系统会告诉代码position是几    @Override    public Object getItem(int position) {        // TODO Auto-generated method stub        // arrayList.get(1)        return null;    }    // 得到具体的数据 一般不常用    // item点击事件中的ID就是从这个方法中来的    @Override    public long getItemId(int position) {        // TODO Auto-generated method stub        return 0;    }    // 给每一个item添加布局,依据position    // 是被循环调用的 这个方法的第二个参数一般都是convertView    //本人没有进行配置所以显示的是最原始的    @Override    public View getView(int position, View arg1, ViewGroup arg2) {        // TODO Auto-generated method stub        // 使用ViewHolder对Adapter进行优化        ViewHolder holder;        if (arg1 == null) {            holder = new ViewHolder();            arg1 = minflater.inflate(R.layout.simple, null);            holder.content = (TextView) arg1.findViewById(R.id.textView1);            holder.img = (ImageView) arg1.findViewById(R.id.imageView);            arg1.setTag(holder);        } else {            holder = (ViewHolder) arg1.getTag();        }        HashMap<String, Object> map = list.get(position);        holder.content.setText(map.get("content").toString());        holder.img.setBackgroundResource((Integer) map.get("image"));        return arg1;        }        }
0 0
原创粉丝点击