adapter适配器包

package com.linyou.lifeservice.adapter;

import java.util.ArrayList;
import java.util.List;

import com.linyou.lifeservice.utils.PublicUtil;
import com.nostra13.universalimageloader.core.ImageLoader;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;

public abstract class AdapterBase<T> extends BaseAdapter
{
    /*
      但对于一些容器类型(比如,ArrayList、HashMap)的实例变量,
    不可以改变容器变量本身,但可以修改容器中存放的对象,这一点在编程中用到很多
     */
    //运用List<T>这个对象集合存放多种形式的对象,运用了泛型替代
    public final List<T> mList = new ArrayList<T>();
    public Context context;
    //布局适配器  将布局转化成对象 从而和数据一一对应
    public LayoutInflater mInflater;

    public AdapterBase(Context baseContext)
    {
        this.context = baseContext;
        mInflater = LayoutInflater.from(baseContext);

    }

    public List<T> getList()
    {
        return mList;
    }

    //将一个对象添加到集合中
    public void appendToList(T t)
    {
        if (t == null)
        {
            return;
        }
        mList.add(t);
        notifyDataSetChanged();
    }

    //将一个对象集合添加到集合中
    public void appendToList(List<T> list)
    {
        if (list == null)
        {
            return;
        }
        mList.addAll(list);
        notifyDataSetChanged();
    }
    //先清空结合  在把一个新的集合添加到集合中
    public void appendToListAndClear(List<T> list)
    {
        mList.clear();
        this.appendToList(list);
    }

    //在把一个新的集合添加到集合的最上层
    public void appendToTopList(List<T> list)
    {
        if (list == null)
        {
            return;
        }
        mList.addAll(0, list);
        notifyDataSetChanged();
    }

    //请空集合
    public void clear()
    {
        mList.clear();
        notifyDataSetChanged();
    }

    @Override  //返回集合个个数 
    public int getCount()
    {
        return mList.size();
    }

    @Override //返回集合中的某个元素
    public Object getItem(int position)
    {
        if (position > mList.size() - 1)
        {
            return null;
        }
        return mList.get(position);
    }
    //移除集合中的某个位置的元素
    public void removeItem(int position)
    {
        if (position >= 0 && position < mList.size())
        {
            mList.remove(position);
            notifyDataSetChanged();
        }
    }
    //移除集合中的某个指定元素
    public void removeItem(T item)
    {
        if (mList.contains(item))
        {
            mList.remove(item);
            notifyDataSetChanged();
        }
    }

    @Override
    public long getItemId(int position)
    {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent)
    {
        return getExView(position, convertView, parent);
    }
    //abstract加入这个关键词表示是抽象的方法,子类中必须进行重写这个方法

    protected abstract View getExView(int position, View convertView, ViewGroup parent);

}

results matching ""

    No results matching ""