最近做了一个Android的地图软件,用到了Adapter的嵌套,小结如下
需要实现的效果如下:
为了下拉列表Spinner中添加ImageView,本人使用了自定义Adapter子类的方法,为下拉列表添加自定义的View,类IconsAdapter的声明如下
1 package com.Android.Baidu.Layers; 2 3 import com.Android.Baidu.navisurveytest.MainActivity; 4 import com.Android.Baidu.navisurveytest.R; 5 6 7 import android.view.View; 8 import android.view.ViewGroup; 9 import android.view.ViewGroup.LayoutParams; 10 import android.widget.BaseAdapter; 11 import android.widget.ImageView; 12 import android.widget.LinearLayout; 13 14 15 public class IconsAdapter extends BaseAdapter { 16 17 @Override 18 public int getCount() { 19 // TODO Auto-generated method stub 20 return 6;/////////////////////////////////////////////////////////////////// 21 } 22 23 @Override 24 public Object getItem(int position) { 25 // TODO Auto-generated method stub 26 return null; 27 } 28 29 @Override 30 public long getItemId(int position) { 31 // TODO Auto-generated method stub 32 return 0; 33 } 34 35 @Override 36 public View getView(int position, View convertView, ViewGroup parent) { 37 // TODO Auto-generated method stub 38 LinearLayout linear = new LinearLayout(MainActivity.mContext); 39 linear.setOrientation(LinearLayout.HORIZONTAL); 40 ImageView imageView = new ImageView(MainActivity.mContext); 41 imageView.setLayoutParams(new LayoutParams(40, 40)); 42 43 // int[] markers = {R.drawable.marker0,R.drawable.marker1, 44 // R.drawable.marker2,R.drawable.marker3, 45 // R.drawable.marker4,R.drawable.marker5, 46 // R.drawable.marker6,R.drawable.marker7, 47 // R.drawable.marker8,R.drawable.marker9}; 48 49 int imgID = -1; 50 51 switch (position) { 52 case 0: 53 { 54 imgID = R.drawable.mark1; 55 break; 56 } 57 case 1: 58 { 59 imgID = R.drawable.mark2; 60 break; 61 } 62 case 2: 63 { 64 imgID = R.drawable.mark3; 65 66 break; 67 } 68 case 3: 69 { 70 imgID = R.drawable.mark4; 71 72 break; 73 } 74 case 4: 75 { 76 imgID = R.drawable.mark5; 77 78 break; 79 } 80 case 5: 81 { 82 imgID = R.drawable.mark6; 83 break; 84 } 85 default: 86 break; 87 } 88 89 //int t = markers[position]; 90 //Drawable drawable =MainActivity.instance.getResources().getDrawable(t); 91 //imageView.setImageDrawable(MainActivity.instance.getResources().getDrawable(MainActivity.instance.markers[position])); 92 //imageView.setImageDrawable(drawable); 93 imageView.setImageDrawable(MainActivity.mContext.getResources().getDrawable(imgID)); 94 linear.addView(imageView); 95 // 96 // TextView textView = new TextView(MainActivity.mContext); 97 // textView.setText(seqMarkerStrings[position]); 98 // textView.setTextColor(Color.BLUE); 99 // textView.setTextSize(30); 100 // linear.addView(textView); 101 102 return linear; 103 104 105 } 106 107 }