首页 > 代码库 > 自定义简单的万能适配器

自定义简单的万能适配器

适配器在android中非常的常用,像ListView,GridView,下拉框。。。中都比较常用,

这篇博客介绍一个万能的适配器,虽然比较简单,但是用处比较大。(不用一个个再去创建适配器了)

此列子创建的是一个虚类,使用的时候需要继承此类,并实现相应的方法。

public abstract class SimpleBaseAdapter<T> extends BaseAdapter{
    //调用类传入的Context
    Context context
    //需要的数据,使用泛型;
    List<T> data;

    //构造方法,传入context和数据
    public SimpleBaseAdapter(Context context, List<T>data){
        this.context = context;
        this.data = http://www.mamicode.com/data == null ? new ArrayList() : data;>SimpleBaseAdapter其实就是对适配器的一种抽象,并且这个抽象类的不同表现用抽象方法

实现,因为实现类必须要实现抽象方法(也可以说实现类是根据抽象方法表现出不同的属性)

SimpleBaseAdapter的实现类:

public class myAdapter extends SimpleBaseAdapter<String> {
    public myAdapter(Context context,List<String> data){
        super(context, data);
    }
    @Override
    public int getItemRsouce() {
        return R.layout.list_item;  //返回次实现类的列表item的xml文件id
    }
    //根据id获取view(每个实现类的id都不一样)
    @Override
    public View getItemView(final int position, View convertView, ViewHolder holder) {
        TextView tv = holder.getView(R.id.title);
        tv.setText((String) getItem(position));
        Button btn = holder.getView(R.id.btn);
        btn.setText("选择");
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(myAdapter.this.context, "" + position, Toast.LENGTH_SHORT).show();
            }
        });

        return convertView;
    }
}


自定义简单的万能适配器