实现的界面如下:三种类型


MainActivity.java:

public class MainActivity extends Activity {private final int TYPE_SWITCH = 0;private final int TYPE_SEEKBAR = 1;private final int TYPE_BUTTON = 2;private static final String[] led_opt={"江苏","广州","新疆","台湾"};private static final String[] led_optContext={"华东地区","位于东南沿海","一个遥远的地方","隔海相望"};List<Map<String, Object>> mData = new ArrayList<Map<String, Object>>();MyAdapter listAdapter ;@Overrideprotected void onCreate(Bundle savedInstanceState) {//setTheme(16974123); super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);{ListView lv = (ListView) this.findViewById(R.id.listview_home); Map<String, Object> map;/** 电源开关*/ map = new HashMap<String, Object>();map.put("img",R.drawable.power_ico_50dp);map.put("title",led_opt[0]);map.put("info",led_optContext[0]); mData.add(map); map = new HashMap<String, Object>();map.put("img",R.drawable.white_ico_50dp);map.put("title",led_opt[1]);map.put("info",led_optContext[1]); mData.add(map);map = new HashMap<String, Object>();map.put("img",R.drawable.rgb_ico_50dp);map.put("title",led_opt[2]);map.put("info",led_optContext[2]); mData.add(map);map = new HashMap<String, Object>();map.put("img",R.drawable.dream_ico_50dp);map.put("title",led_opt[3]);map.put("info",led_optContext[3]); mData.add(map);listAdapter = new MyAdapter(this); lv.setAdapter(listAdapter);} } 


MyAdapter.java

/**     * 自定义一个Adapter(实现了ListAdapter接口)     *      * @author Administrator     *      */       class MyAdapter extends BaseAdapter{         LayoutInflater inflater = null;         public MyAdapter(Context context) {             this.inflater = LayoutInflater.from(context);            //inflater =(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);        }          @Override         public int getCount() {         // TODO Auto-generated method stub             return mData.size();}          //每个convert view都会调用此方法,获得当前所需要的view样式         @Override         public int getItemViewType(int position) {             // TODO Auto-generated method stub                          int p = position%4;             if(p == 0)                 return TYPE_SWITCH;             else if(p == 1)                 return TYPE_SEEKBAR;             else if(p == 2)                 return TYPE_SEEKBAR;             else if(p == 3)                 return TYPE_BUTTON;             else                  return 0;         }          @Override         public int getViewTypeCount() {             // TODO Auto-generated method stub             return 3;         }          @Override         public Object getItem(int position) {             // TODO Auto-generated method stub             //return mData.get(arg0);             return position;         }          @Override         public long getItemId(int position) {             // TODO Auto-generated method stub             return position;         }          @Override         public View getView(int position, View convertView, ViewGroup parent) {             // TODO Auto-generated method stub                                 viewHolder_switch holder_switch = null;             viewHolder_seekbar holder_seekbar = null;             viewHolder_button holder_button = null;                           int type = getItemViewType(position);                           if (convertView == null)             {                Log.e("convertView = ", " NULL");               switch(type)              {              case TYPE_SWITCH:                                                        holder_switch = new viewHolder_switch();                  convertView = inflater.inflate(R.layout.listview_switch_row, parent, false);                 // convertView = inflater.inflate(R.layout.listview_switch_row,null);                  //                  holder_switch.img = (ImageView)convertView.findViewById(R.id.img_sw);                  holder_switch.title = (TextView)convertView.findViewById(R.id.title_sw);                  holder_switch.info = (TextView)convertView.findViewById(R.id.info_sw);                  Log.e("convertView = ", "NULL TYPE_SWITCH");                                       convertView.setTag(holder_switch);                                                                         break;              case TYPE_SEEKBAR:                                                                    convertView = inflater.inflate(R.layout.listview_seekbar_row, parent, false);                                    holder_seekbar = new viewHolder_seekbar();                  holder_seekbar.img = (ImageView)convertView.findViewById(R.id.img_sb);                  holder_seekbar.title = (TextView)convertView.findViewById(R.id.title_sb);                  holder_seekbar.info = (TextView)convertView.findViewById(R.id.info_sb);                  Log.e("convertView = ", "NULL TYPE_SEEKBAR");                                                       convertView.setTag(holder_seekbar);                  break;                                case TYPE_BUTTON:                                     convertView = inflater.inflate(R.layout.listview_button_row, parent, false);                  holder_button = new viewHolder_button();                  holder_button.img = (ImageView)convertView.findViewById(R.id.img_btn);                  holder_button.title = (TextView)convertView.findViewById(R.id.title_btn);                  holder_button.info = (TextView)convertView.findViewById(R.id.info_btn);                  Log.e("convertView = ", "NULL TYPE_BUTTON");                                                           convertView.setTag(holder_button);                break;              }             }else{                //有convertView,按样式,取得不用的布局                switch(type)                {                case TYPE_SWITCH:                    holder_switch = (viewHolder_switch) convertView.getTag();                    Log.e("convertView !!!!!!= ", "NULL TYPE_SWITCH");                    break;                case TYPE_SEEKBAR:                    holder_seekbar = (viewHolder_seekbar) convertView.getTag();                    Log.e("convertView !!!!!!= ", "NULL TYPE_SEEKBAR");                    break;                case TYPE_BUTTON:                    holder_button = (viewHolder_button) convertView.getTag();                    Log.e("convertView !!!!!!= ", "NULL TYPE_BUTTON");                    break;                }             }              //设置资源             switch(type)             {                case TYPE_SWITCH:                      holder_switch.img.setBackgroundResource((Integer)mData.get(position).get("img"));                      holder_switch.title.setText((String)mData.get(position).get("title"));                      holder_switch.info.setText((String)mData.get(position).get("info"));                      //holder_switch.Switch.setChecked(true);                  break;             case TYPE_SEEKBAR:                                      holder_seekbar.img.setBackgroundResource((Integer)mData.get(position).get("img"));                    holder_seekbar.title.setText((String)mData.get(position).get("title"));                    holder_seekbar.info.setText((String)mData.get(position).get("info"));                                      break;              case TYPE_BUTTON:                  holder_button.img.setBackgroundResource((Integer)mData.get(position).get("img"));                  holder_button.title.setText((String)mData.get(position).get("title"));                  holder_button.info.setText((String)mData.get(position).get("info"));                break;              }                          return convertView;           }       }         //各个布局的控件资源        class viewHolder_switch{                       /** 布局ID */            public int layoutID;             /** 图片ID */            public ImageView img;             /** 标题 */            public TextView title;             /** 内容 */            public TextView info;            /* switch*/            public Switch Switch;                                        }         class viewHolder_seekbar{            /** 布局ID */            public int layoutID;             /** 图片ID */            public ImageView img;             /** 标题 */            public TextView title;             /** 内容 */            public TextView info;             public SeekBar sb;             }         class viewHolder_button        {             private int layoutID;             private ImageView img;             /** 标题 */            private TextView title;             /** 内容 */            private TextView info;             /** 按钮名称 */            private Button button;                                 }        }


更多相关文章

  1. android 通过HttpPost 调用.Net Wcf
  2. 【android开发】android操作文件
  3. Android(安卓)全屏无标题详解
  4. Android改变标题栏背景和文字颜色
  5. 自定义Android标题栏
  6. android具有折叠效果的控件
  7. Android实现分享和接收分享内容
  8. Android获取高清app图标代码分享
  9. Android(安卓)4.0 创建AVD报错

随机推荐

  1. 查看已經下載好ANDROID源碼是什麽版本號
  2. MacOS 下Android Studio NDK 环境搭建与
  3. Android HapticFeedback(震动反馈)介绍
  4. [置顶] android中常见的内存泄露场景
  5. android的sdcard文件的读取和保存详细介
  6. Android-使用Junit单元测试
  7. Android判断是否有可用网络和判断WIFI是
  8. N个非常有用的Android程序片段(持续更新)
  9. Android中Bitmap,byte[],Drawable,InputSt
  10. Android关于ListView显示SD卡上的Bitmap