您的位置:首页 > 其它

Listview数据适配器的基类的封装

2017-01-17 13:42 274 查看

Listview数据适配器的基类封装

最近忙完项目终于拥有了一些闲暇的事件来学习和整理资料,对于初学者来说Listview这个又爱又恨的控件是无法避免的,特别是在数据的适配上实现控件的刷新老是出现各种各样的问题。
记得最初学习listview控件的使用时看见的书籍和一些网络资料都是简单的对listview进行了数据适配,一些写法都是将数据源放入了adapter的构造方法中,这样虽然简单,但是在后面的数据更新操作时就会显得过于的呆板和麻烦。于是就有了各种各样封装后的Adapter来动态的加载数据,实现了数据更新的灵活性。


目录

Listview数据适配器的基类封装

目录

基于BaseAdapter封装的AbstractAdapter

说明

基于BaseAdapter封装的AbstractAdapter

public abstract class AbstractAdapter<T> extends BaseAdapter {

protected Context context;
protected List<T> data = new ArrayList<T>();

public AbstractAdapter(Context context) {
this.context = context;
}

public boolean isEmpty() {
return data.isEmpty();
}

public void add(T d) {
if (d != null) {
data.add(d);
}
}

public void add(int index,T d) {
if(d != null) {
data.add(index, d);
}
}

public T remove(int location) {
return data.remove(location);
}

public void addAll(List<T> d) {
if (d != null) {
data.addAll(d);
}
}

public void addAll(T[] d) {
if(d != null) {
int len = d.length;
for(int i=0;i<len;i++) {
data.add(d[i]);
}
}
}

public void clear() {
data.clear();
}

public void clearAndAddAll(List<T> d) {
clear();
addAll(d);
}

public List<T> getAll(){
return data;
}

@Override
public int getCount() {
return data.size();
}

@Override
public T getItem(int position) {
return data.get(position);
}

public int getPosition(T d) {
return data.indexOf(d);
}

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

protected View inflate(int resource) {
return LayoutInflater.from(context).inflate(resource, null);
}
}


说明

该基类可用于动态加载数据,动态更改Listview中item项布局等操作。

如需转载,请注明出处,如有雷同,技术巧合。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  listview adapter