ListView使用注意

 1 public class MyListAdapter extends ArrayAdapter<Collocation> {
 2     List<Data> list;
 3     LayoutInflater inflater;
 4     BaseUIActivity mActivity;
 5     ItemBottomManager mManager;
 6     Data data;
 7     ViewHolder holder;
 8 
 9     public GMJDIYBoxListAdapter(GMJBaseUIActivity context) {
10         super(context, 0);
11         // TODO Auto-generated constructor stub
12         inflater = (LayoutInflater) context
13                 .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
14         mActivity = context;
15         list = new ArrayList<Collocation>();
16     }
17 
18     public GMJDIYBoxListAdapter(GMJBaseUIActivity context,
19             List<Collocation> list) {
20         // TODO Auto-generated constructor stub
21         super(context, 0);
22         inflater = (LayoutInflater) context
23                 .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
24         mActivity = context;
25         Log.d("..............................................", "");
26         this.list = list;
27     }
28 
29     @Override
30     public View getView(int position, View convertView, ViewGroup parent) {
31         // TODO Auto-generated method stu
32         data = list.get(position);
33         if (convertView == null) {
34             convertView = inflater.inflate(R.layout.diy_box_item_item, null);
35             holder = createViewHolder(convertView);
36             convertView.setTag(holder);
37         } else {
38             holder = (ViewHolder) convertView.getTag();
39         }
40         holder.nick.setText(data.getPropose_user_nick());
41         mActivity.getImageLoader().asyncLoad(
42                 new SimpleImageLoadCallback(mActivity, data
43                         .getPropose_user_avatar(), holder.avator,
44                         R.drawable.img_signup_photo));
45         mActivity.getImageLoader().asyncLoad(
46                 new SimpleImageLoadCallback(mActivity, data.getMerge_image(),
47                         holder.img, R.drawable.img_guide_clothes));
48         mManager.setNums(data.getComment_num(), data.getLike_num());
49         return convertView;
50     }
51 
52     @Override
53     public int getCount() {
54         // TODO Auto-generated method stub
55         return list.size();
56     }
57 
58 
59     class ViewHolder {
60         CircleImageView avator;
61         TextView nick;
62         ImageView collect;
63         ImageView img;
64         TextView description;
65         View bottom;
66         View showItem;
67         TextView createTime;
68     }
69 
70     ViewHolder createViewHolder(View view) {
71         ViewHolder holder = new ViewHolder();
72         holder.avator = (CircleImageView) view.findViewById(R.id.avator);
73         holder.nick = (TextView) view.findViewById(R.id.nick_name);
74         holder.collect = (ImageView) view.findViewById(R.id.collect);
75         holder.img = (ImageView) view.findViewById(R.id.img_item);
76         holder.description = (TextView) view.findViewById(R.id.description);
77         holder.bottom = view.findViewById(R.id.item_bottom);
78         holder.showItem = view.findViewById(R.id.showitem_click);
79         holder.createTime = (TextView) view.findViewById(R.id.createtime);
80         return holder;
81     }
82 
83 
84 }

两点内容:

1、通过viewholder来完成view的重载。

2、重写getCount方法(否则有可能出现无法显示的问题)

posted @ 2014-03-28 18:27  freedomCoder  阅读(181)  评论(0)    收藏  举报