android 抽象 BaseAdapter ,如何简化listview数据填补

android 抽象 BaseAdapter ,如何简化listview数据填补,第1张

概述刚接触listview的时候,采用的数据填补是内部类集成baseadapter,重写getCount()、getItem(intposition)、getItemId(intposition)、getView(intposition,ViewconvertView,ViewGroupparent)方法等、或许,还要写一个构造方法。当然,拿来说demo还是很不错的,而且很快捷。但是当

刚接触ListvIEw的时候,采用的数据填补是内部类集成baseadapter,重写getCount()、getItem(int position)、getItemID(int position)、getVIEw(int position, VIEw convertVIEw,

VIEwGroup parent)方法等、或许,还要写一个构造方法。

当然,拿来说demo还是很不错的,而且很快捷。但是当你在app里需要很多地方都用到ListvIEw时,这样的方法就会显得很鸡肋,你需要多次重复的实现上述 *** 作,你的activity会很臃肿,而且耗时。如果把上述方法抽象成一个父类,每次使用只需要重写必要方法,岂不是更好?

 

步骤+代码:

1.新建这个父类 MyBaseAdapter ;代码如下:

public abstract class MyBaseAdapter<T> extends BaseAdapter {
protected Context mcontext;
protected LayoutInflater mlayoutInflater;
protected List<T> mList = new ArrayList<T>();


public MyBaseAdapter(Context context) {
mcontext = context;
mlayoutInflater = LayoutInflater.from(context);
}


/**
* 判断List是否为空
* */
public boolean isEmpty() {
return mList.isEmpty();
}


/**
* 添加数据
* */
public voID addItems(List<T> itemsList) {
mList.addAll(itemsList);
notifyDataSetChanged();
}


/**
* 设置新数据,旧数据会清空
* */
public voID setItems(List<T> itemsList) {
mList.clear();
mList = itemsList;
notifyDataSetChanged();
}


/**
* 清空数据
* */
public voID cleanItems() {
mList.clear();
notifyDataSetChanged();
}


@OverrIDe
public int getCount() {
return (null == mList || mList.size() == 0) ? 0 : mList.size();
}


@OverrIDe
public Object getItem(int position) {
return position;
}


@OverrIDe
public long getItemID(int position) {
return position;
}


@OverrIDe
abstract public VIEw getVIEw(int position, VIEw convertVIEw,
VIEwGroup parent);


}

2.新建你的adapter类:例如:A ,继承MyBaseAdapter

public class A extends
MyBaseAdapter<T> {
 


public UserCenter_Project_Adapter(Context context, int UserIDTemp) {
super(context); 
}


@OverrIDe
public VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup parent) {
VIEwHolder holder = null;
if (null == convertVIEw) {
holder = new VIEwHolder(); 
convertVIEw.setTag(holder);
} else {
holder = (VIEwHolder) convertVIEw.getTag();

return convertVIEw;
}


class VIEwHolder { 
}
}

3.在你的activity里,一般会用到上拉加载或下拉刷新等,这个 *** 作也很简单。

a.下拉刷新:

pullToRefreshListVIEw.setAdapter(adapter);
adapter.setItems(List);

b.上拉加载:

adapter.addItems(ListTemp);

 

这样,adapter的使用就结束了。

补充:

 代码中的T是你根据服务器数据创建的model,即实体类

 

 

 

 

 

总结

以上是内存溢出为你收集整理的android 抽象 BaseAdapter ,如何简化listview数据填补全部内容,希望文章能够帮你解决android 抽象 BaseAdapter ,如何简化listview数据填补所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1118270.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存