代码技巧2.listview的item只是简单的textview的时候适配器 怎么写?

1.维护数据以及适配器

 LocationAdapter provinceAdapter = new LocationAdapter(provinceList, this);
 mSpProvince.setAdapter(provinceAdapter);
 mSpProvince.setPrompt("省")

 2.适配器 
public class LocationAdapter extends Base<Location> {


    public LocationAdapter(List<Location> dataSource, Context context) {
        super(dataSource, context);
    }


    @Override
    public View createView(int position, View convertView, ViewGroup parent) {
        Location myListItem = getItem(position);
        return new MyAdapterView(this.context, myListItem);
    }


    class MyAdapterView extends LinearLayout {
        public MyAdapterView(Context context, Location myListItem) {
            super(context);
            this.setOrientation(HORIZONTAL);
            //这就是要是一个listview的item只是简单的textview的时候 这样简单的写 可以的
            LayoutParams params = new LayoutParams(400, LayoutParams.WRAP_CONTENT);
            params.setMargins(1, 1, 1, 1);


            TextView name = new TextView(context);
            name.setText(myListItem.getName());
            addView(name, params);
        }
    }
}

3.对象Location

public class Location {
    private Long id;
    private Long parentId;
    private String name;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getParentId() {
        return parentId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setParentId(Long parentId) {
        this.parentId = parentId;
    }
}

4.base 适配器

public abstract class Base<T> extends BaseAdapter {
    protected List<T> list;
    protected Context context;
    protected LayoutInflater inflater;
    protected BitmapUtils bitmapUtils;

    public Base() {
    }

    public Base(List<T> list, Context context) {
        this.list = list;
        this.context = context;
        inflater = LayoutInflater.from(context);
        bitmapUtils = new BitmapUtils(context, FileUtils.GetBitmapCachePath(), ConstantStatic.DISK_CACHE_SIZE);
    }

    @Override
    public int getCount() {
        return list != null && !list.isEmpty() ? list.size() : 0;
    }

    @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) {
        return createView(position, convertView, parent);
    }

    public abstract View createView(int position, View convertView, ViewGroup parent);

    public void setData(List<T> list) {
        this.list = list;
        notifyDataSetChanged();
    }
}


以后再遇到了listview的item是一个简单的textview的时候  就可以这样写 很简练 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值