由于在给ListView设置Adapter的时候每次都要重写BaseAdapter里面的4个方法,比较麻烦,也浪费时间,所以,写了个高大上的Adapter。
public abstract class UCBaseAdapter<T,V> extends BaseAdapter {
protected Context context;
// T是list中存放的数据类型
protected List<T> list;
// V是View的类型
protected V view;// 这里不一定是ListView,比如GridView,CustomListView
public UCBaseAdapter(Context context, List<T> list, V view) {
super();
this.context = context;
this.list = list;
this.view = view;
}
public UCBaseAdapter(Context context, List<T> list) {
super();
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
}以后再写Adapter的时候,继承UCBaseAdapter就可以少写好多没必要的代码了。如:
class myAdapter extends UCBaseAdapter<String, ListView>
说明list中存放的是字符串信息,View类型是ListView。然后只需要重写里面的getView方法即可。
联网获取数据时,获取到的数据先保存到本地,保存到本地后,再对数据进行处理。用SharedPreferences缓存数据时,获得数据保存数据前都要做些重复的工作,我们可以把这些重复的工作放到一个工具类里面,以减少冗余代码。
联网获得数据时,先判断缓存中是否有数据,然后再从网上获得数据。这样做的原因是:在没有网络的时候,提高用户体验。网络比较慢时也不会出现白板现象,用户体验很好。
本文介绍了一种简化Adapter实现的方法以及优化联网数据加载流程的策略。通过使用UCBaseAdapter类,开发者可以减少重复代码的编写。同时,通过在本地缓存数据,提高了用户体验并避免了网络问题导致的白屏现象。
5597

被折叠的 条评论
为什么被折叠?



