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 }