当前位置:操作系统 > 安卓/Android >>

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:它绑定View到Content 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;
      }
}


作者:gps梦想
补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,