Android Adapter詳解

          Android Adapter 是將數據綁定到UI 界面上的橋接類。 Adapter負責創建和顯示每個項目的子View和提供對下層數據的訪問。支持Adapter綁定的UI控件必須擴展Adapter View抽象類。創建自己的繼承自AdapterView的控件和創建新的Adapter類來綁定它們是可能的。

          Android 系統本身提供了兩種現成的Adapter 供我們使用。

          1.ArrayAdapter:它是一個綁定View到一組對象的通用類。默認情況下,ArrayAdapter綁定每個對象的toString值到layout中預先定義的TextView空間上。構造函數允許用戶使用更加復雜的Layout或者通過重寫getView方法來擴展類從而使用TextView的替代物

          2.SimpleCursorAdapter:它綁定ViewContent Provider 查詢返回的游標上。指定一個XML layout定義,然后將數據集的每一列的值綁定到layout中的一個View

           

          寫自己的Adapter類實現更多復雜的UI界面和數據綁定

             
          public class MyAdapter extends SimpleAdapter {
              
                
          private LayoutInflater mInflater;
                
          private Context context;
                
          private List<Map<String,Object>> list;
                
          private int resource;
                
          private String[] tags;
                
          private int[] ids;
                
          public MyAdapter(Context context, List<Map<String,Object>> items, int resource,
                        String[] tags,
          int[] ids) {
                    
          super(context, items, resource, tags, ids);
                    
                    
          this.mInflater = LayoutInflater.from(context);
                    
          this.context = context;
                    
          this.list = items;
                    
          this.resource = resource;
                    
          this.tags = tags;
                    
          this.ids = ids;
                }
                
                
          public int getCount() {
                    
          return list.size();
                }
                
                
          public Object getItem(int position) {
                    
          return list.get(position);
                }
                
                
          public long getItemId(int position) {
                    
          return position;
                }
                
                
          public View getView(final int position, View convertView, ViewGroup parent) {
                    convertView 
          = super.getView(position, convertView, parent);
                    
          if (convertView == null) {  
                        Toast.makeText(context, 
          "this is null"2000).show(); 
                       
                   
                    } 
          else {   
                        
                    } 
                   
                    ImageView more 
          = (ImageView) convertView.findViewById(R.id.iv_more); 
                    
                    more.setOnClickListener(
          new View.OnClickListener() {
                        
          public void onClick(View arg0) {
                            Intent intent 
          = new Intent(context, VehicleInfoActivity.class);
                            intent.putExtra(
          "vehicleID", VehicleListActivity.idList.get(position));
                            intent.putExtra(
          "CameraID""0");
                            Toast.makeText(context, 
          "sssssss"2000).show();  
                            context.startActivity(intent);
                            
                
                        }
                    });
                    
                    
          return convertView;
                }
          }

          主要重載getCount 方法,getView方法 getItem方法 getItemId方法; 參數解析:context:傳入的上下文Activity, items 綁定數據的列表, resource layout布局ID, tags 綁定數據的key, ids Item 中對應key的資源ID getView中自定義Item里面的事件監聽,自定義新的重載后的顯示界面返回 convertView 如果需要使用到父類SimpleAdapter 顯示效果需要調用super.getView方法為 convertView 賦值。

          posted on 2012-07-06 11:19 gps夢想 閱讀(2686) 評論(0)  編輯  收藏 所屬分類: JAVA基礎android開發


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2012年7月>
          24252627282930
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          導航

          統計

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 永定县| 米泉市| 方正县| 托里县| 乌拉特前旗| 阳东县| 宁国市| 安平县| 大埔区| 贵州省| 昌平区| 东阳市| 若羌县| 保康县| 南郑县| 宜兰市| 宁波市| 启东市| 庐江县| 甘南县| 玉环县| 林西县| 宁武县| 金湖县| 台前县| 交城县| 天水市| 巩留县| 湄潭县| 九江县| 呼图壁县| 千阳县| 德化县| 长顺县| 星子县| 铜川市| 海伦市| 洛川县| 垣曲县| 鸡东县| 荥阳市|