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夢想 閱讀(2685) 評論(0)  編輯  收藏 所屬分類: JAVA基礎android開發


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


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

          導航

          統計

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 台南市| 尉犁县| 汝州市| 大庆市| 金昌市| 灵宝市| 东乌珠穆沁旗| 区。| 舒城县| 龙南县| 荥阳市| 铜川市| 凌云县| 图片| 东乡| 霍城县| 密山市| 怀仁县| 滦平县| 广西| 丹凤县| 乐至县| 华池县| 荔波县| 南漳县| 夏津县| 连江县| 西盟| 韶山市| 巴林右旗| 清水县| 嘉黎县| 襄汾县| 永顺县| 施秉县| 马公市| 分宜县| 和平县| 库尔勒市| 孙吴县| 从江县|