自定义BaseAdapter
2015-03-06 11:19
141 查看
自定义一个类继承自BaseAdapter,将一些Adapter中相同的方法封装到自定义类中,在写Adapter的时候直接继承自这个自定义类
public abstract classMyBaseAdapter<T> extends BaseAdapter {
protectedContext context;
protectedLayoutInflater inflater;
protectedArrayList<T> myList=new ArrayList<T>();
publicMyBaseAdapter(Context context){
this.context=context;
this.inflater=LayoutInflater.from(context);
}
//封装加数据的方法--1条 多条
publicvoid appendData(T t,boolean isClearOld){
if(t==null)
return;
if(isClearOld)
myList.clear();
myList.add(t);
}
publicvoid appendData(ArrayList<T> data,boolean isClearOld){
if(data==null)
return;
if(isClearOld)
myList.clear();
myList.addAll(data);
}
//封装加数据的方法--1条 多条 在顶部添加
publicvoid appendDataTop(T t,boolean isClearOld){
if(t==null)
return;
if(isClearOld)
myList.clear();
myList.add(0,t);
}
publicvoid appendDataTop(ArrayList<T> data,boolean isClearOld){
if(data==null)
return;
if(isClearOld)
myList.clear();
myList.addAll(0,data);
}
publicvoid update(){
this.notifyDataSetChanged();
}
publicvoid clear(){
myList.clear();
}
publicint getCount() {
if(myList==null)
return0;
returnmyList.size();
}
publicT getItem(int position) {
if(myList==null)
returnnull;
if(position>myList.size()-1)
returnnull;
returnmyList.get(position);
}
publiclong getItemId(int position) {
returnposition;
}
publicView getView(int position, View convertView, ViewGroup parent) {
returngetMyView(position, convertView, parent);
}
publicabstract View getMyView(int position, View convertView, ViewGroup parent);
}
public abstract classMyBaseAdapter<T> extends BaseAdapter {
protectedContext context;
protectedLayoutInflater inflater;
protectedArrayList<T> myList=new ArrayList<T>();
publicMyBaseAdapter(Context context){
this.context=context;
this.inflater=LayoutInflater.from(context);
}
//封装加数据的方法--1条 多条
publicvoid appendData(T t,boolean isClearOld){
if(t==null)
return;
if(isClearOld)
myList.clear();
myList.add(t);
}
publicvoid appendData(ArrayList<T> data,boolean isClearOld){
if(data==null)
return;
if(isClearOld)
myList.clear();
myList.addAll(data);
}
//封装加数据的方法--1条 多条 在顶部添加
publicvoid appendDataTop(T t,boolean isClearOld){
if(t==null)
return;
if(isClearOld)
myList.clear();
myList.add(0,t);
}
publicvoid appendDataTop(ArrayList<T> data,boolean isClearOld){
if(data==null)
return;
if(isClearOld)
myList.clear();
myList.addAll(0,data);
}
publicvoid update(){
this.notifyDataSetChanged();
}
publicvoid clear(){
myList.clear();
}
publicint getCount() {
if(myList==null)
return0;
returnmyList.size();
}
publicT getItem(int position) {
if(myList==null)
returnnull;
if(position>myList.size()-1)
returnnull;
returnmyList.get(position);
}
publiclong getItemId(int position) {
returnposition;
}
publicView getView(int position, View convertView, ViewGroup parent) {
returngetMyView(position, convertView, parent);
}
publicabstract View getMyView(int position, View convertView, ViewGroup parent);
}
相关文章推荐
- Android之自定义实现BaseAdapter(通用适配器四)
- 自定义BaseAdapter,适配任意数据和布局
- listview的使用及自定义baseAdapter
- 可复用的自定义BaseAdapter
- Android之自定义实现BaseAdapter(通用适配器一)
- BaseAdapter数据刷新,自定义BaseAdapter
- BaseAdapter 自定义适配器设置网格布局
- android AutoCompleteTextView 自定义BaseAdapter
- BaseAdapter 自定义适配器的使用以及优化
- 自定义BaseAdapter[转]
- 自定义BaseAdapter[转]
- android 自定义适配器Adapter基类BaseAdapter
- Android之自定义实现BaseAdapter(通用适配器二)
- Android基础入门教程——2.4.7 构建一个可复用的自定义BaseAdapter
- 07_Android操作sqllite数据库(包括2中方式操作数据的方式),单元测试,BaseAdapter的使用,自定义view的综合使用案例
- 2.3 自定义BaseAdapter
- Android 自定义BaseAdapter
- 继承自baseAdapter的自定义适配器无法自动回调getView方法的问题
- 关于ListView()中自定义方式(BaseAdapter)getView()的相关问题
- Android零基础入门第42节:自定义BaseAdapter