1 /**
2 * 自定义城市列表适配器
3 */
4 private class MyCityListAdapter extends BaseAdapter {
5
6 final int VIEW_TYPE = 2;
7 final int TYPE_1 = 0;
8 final int TYPE_2 = 1;
9
10 @Override
11 public int getCount() {
12 return cityList.size();
13 }
14
15 @Override
16 public Object getItem(int position) {
17 return cityList.get(position);
18 }
19
20 @Override
21 public long getItemId(int position) {
22 return position;
23 }
24
25 @Override
26 public int getItemViewType(int position) {
27
28 if (position == 3||position == 5||position == 10)
29 return TYPE_1;
30 else
31 return TYPE_2;
32 }
33
34 @Override
35 public int getViewTypeCount() {
36 return VIEW_TYPE;
37 }
38
39 ViewHolder viewHolder;
40
41 @Override
42 public View getView(int position, View convertView, ViewGroup parent) {
43
44 viewHolder = new ViewHolder();
45 if (convertView == null) {
46
47 //对listView设置不同布局
48 int type = getItemViewType(position);
49 Log.e("打印值", "getView " + position + " " + convertView + " type = " + type);
50
51 switch (type) {
52 case TYPE_1:
53 convertView = LayoutInflater.from(getApplicationContext()).inflate(R.layout.city_view_item_sort, null);
54 break;
55 case TYPE_2:
56 convertView = LayoutInflater.from(getApplicationContext()).inflate(R.layout.city_view_item, null);
57 break;
58 }
59 convertView.setTag(viewHolder);
60 } else {
61 viewHolder = (ViewHolder) convertView.getTag();
62
63 }
64
65 viewHolder.textView = (TextView) convertView.findViewById(R.id.cityName);
66 viewHolder.textView.setText(cityList.get(position).getCityName());
67 return convertView;
68 }
69 }
70
71 private class ViewHolder {
72 private TextView textView;
73 }