android BaseAdapter 自定义适配器 BaseAdapter基类抽取 二

基类继承BaseAdapter

package com.zcycjy.mobile.adapter;import java.util.ArrayList;import java.util.List;import android.content.Context;import android.util.SparseArray;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;  public abstract class BAdapter extends android.widget.BaseAdapter {      private List list;        private LayoutInflater inflater;      public BAdapter(Context context) {          init(context, new ArrayList());      }        public BAdapter(Context context, List list) {          init(context, list);      }        private void init(Context context, List list) {          this.list = list;          this.inflater = LayoutInflater.from(context);    }        public List getList() {          return list;      }        public void setList(List list) {          this.list = list;      }        public void clear() {          this.list.clear();          notifyDataSetChanged();      }        public void addAll(List list) {          if (null != list) {              this.list.addAll(list);              notifyDataSetChanged();          }      }          public void remove(int position){    if (null != list) {      this.list.remove(position);    notifyDataSetChanged();    }    }      @Override      public int getCount() {          return list == null ? 0 : list.size();      }        @Override      public T getItem(int position) {          return list.get(position);      }        @Override      public long getItemId(int position) {          return position;      }        @Override      public View getView(int position, View convertView, ViewGroup parent) {          if (null == convertView) {              convertView = inflate(getContentView());          }          onInitView(convertView, position);          return convertView;      }        /** 加载布局 */      private View inflate(int layoutResID) {          View view = inflater.inflate(layoutResID, null);          return view;      }        public abstract int getContentView();        public abstract void onInitView(View view, int position);        /**      *       * @param view      *            converView      * @param id      *            控件的id      * @return 返回      */      @SuppressWarnings("unchecked")      protected  E get(View view, int id) {          SparseArray viewHolder = (SparseArray) view.getTag();          if (null == viewHolder) {              viewHolder = new SparseArray();              view.setTag(viewHolder);          }          View childView = viewHolder.get(id);          if (null == childView) {              childView = view.findViewById(id);              viewHolder.put(id, childView);            }          return (E) childView;      }  }
继承基类extends BAdapter  Address是你的实体类

package com.zcycjy.mobile.adapter;import java.util.List;import android.content.Context;import android.view.View;import android.widget.TextView;import com.zcycjy.mobile.R;import com.zcycjy.mobile.entity.Address;public class AddressAdapter extends BAdapter {public AddressAdapter(Context context, List list) {super(context, list);}@Overridepublic int getContentView() {return R.layout.item_address;}@Overridepublic void onInitView(View view, int position) {// TODO Auto-generated method stubTextView tv = get(view, R.id.item_tv_name);Address ad = (Address) getItem(position);tv.setText(ad.getId());}}


更多相关文章

  1. Android查看手机通讯录(ListView)
  2. android listview 三种适配器设置
  3. android控件之GridView
  4. android之横向滚动图
  5. Android中RatingBar的自定义总结
  6. Android(安卓)中 ListView Adapter getView 被多次调用问题 解决
  7. 我的android 第20天 - 自定义适配器
  8. Android(安卓)Studio修改默认Activity继承AppCompatActivity
  9. 全局共享变量(Android)

随机推荐

  1. Android基础之Android动画
  2. Android4.4 Telephony流程分析——联系人
  3. android 调试跟踪framework层代码
  4. Android(安卓)JNI代码
  5. Android数据手册:Android颜色码制表
  6. Android(安卓)EventBus实战 没听过你就ou
  7. Android(安卓)学习系列 - Fragment
  8. 设备管理器权限- Android
  9. Android(安卓)的 system property servic
  10. 探索Popupwindow-对话框风格的窗口