Android BaseAdapter使用详解
2013-03-01 16:45
274 查看
类概述
BaseAdapter主要用于ListView(实现指定的ListAdapter接口)、Spinner(实现指定的SpinnerAdapter接口)以及GridView的共同实现一个公共基类适配器。
假设我们实现一个ArrayListAdapter,
public abstract class ArrayListAdapter<T> extends BaseAdapter{
protected ArrayList<T> mList;
protected Activity mContext;
protected ListView mListView;
public ArrayListAdapter(Activity context){
this.mContext = context;
}
@Override
//设置像layout中填充的条目数量
public int getCount() {
if(mList != null)
return mList.size();
else
return 0;
}
@Override
public Object getItem(int position) {
return mList == null ? null : mList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
/**
* @param position position就是位置从0开始
* @param convertView convertView是Spinner,ListView中每一项要显示的view
* @param parent parent就是父窗体了,也就是Spinner,ListView,GridView了
* @return 通常return 的view也就是convertView
* 绘制的内容均在此实现
*/
abstract public View getView(int position, View convertView, ViewGroup parent);
public void setList(ArrayList<T> list){
this.mList = list;
notifyDataSetChanged();
}
public ArrayList<T> getList(){
return mList;
}
public void setList(T[] list){
ArrayList<T> arrayList = new ArrayList<T>(list.length);
for (T t : list) {
arrayList.add(t);
}
setList(arrayList);
}
public ListView getListView(){
return mListView;
}
public void setListView(ListView listView){
mListView = listView;
}
}
BaseAdapter主要用于ListView(实现指定的ListAdapter接口)、Spinner(实现指定的SpinnerAdapter接口)以及GridView的共同实现一个公共基类适配器。
假设我们实现一个ArrayListAdapter,
public abstract class ArrayListAdapter<T> extends BaseAdapter{
protected ArrayList<T> mList;
protected Activity mContext;
protected ListView mListView;
public ArrayListAdapter(Activity context){
this.mContext = context;
}
@Override
//设置像layout中填充的条目数量
public int getCount() {
if(mList != null)
return mList.size();
else
return 0;
}
@Override
public Object getItem(int position) {
return mList == null ? null : mList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
/**
* @param position position就是位置从0开始
* @param convertView convertView是Spinner,ListView中每一项要显示的view
* @param parent parent就是父窗体了,也就是Spinner,ListView,GridView了
* @return 通常return 的view也就是convertView
* 绘制的内容均在此实现
*/
abstract public View getView(int position, View convertView, ViewGroup parent);
public void setList(ArrayList<T> list){
this.mList = list;
notifyDataSetChanged();
}
public ArrayList<T> getList(){
return mList;
}
public void setList(T[] list){
ArrayList<T> arrayList = new ArrayList<T>(list.length);
for (T t : list) {
arrayList.add(t);
}
setList(arrayList);
}
public ListView getListView(){
return mListView;
}
public void setListView(ListView listView){
mListView = listView;
}
}
相关文章推荐
- 使用详解及源码解析Android中的Adapter、BaseAdapter、ArrayAdapter、SimpleAdapter和SimpleCursorAdapter
- 使用详解及源码解析Android中的Adapter、BaseAdapter、ArrayAdapter、SimpleAdapter和SimpleCursorAdapter
- 使用详解及源码解析Android中的Adapter、BaseAdapter、ArrayAdapter、SimpleAdapter和SimpleCursorAdapter
- Android 入门ListView 的基本使用,BaseAdapter的编写
- Android高手进阶教程(十六)之---Android中万能的BaseAdapter(Spinner,ListView,GridView)的使用!
- Android BaseAdapter在GridView,ListView,Spinner中的使用
- Android杂谈--ListView之BaseAdapter的使用
- Android杂谈--ListView之BaseAdapter的使用
- Android杂谈--ListView之BaseAdapter的使用
- Android深入浅出系列之实例应用—简单的手指拖动图片,图片滑来滑去显示应用Gallery和BaseAdapter以及ImageView的使用
- Android-ListView的使用-为新手而创-BaseAdapter
- Android杂谈--ListView之BaseAdapter的使用和优化
- Android中SimpleAdapter,ArrayAdapter和BaseAdapter详解
- Android中Adapter之BaseAdapter使用
- Android-ListView适配器BaseAdapter的使用和优化
- Android 之 ListView使用BaseAdapter展示列表
- Android中万能的BaseAdapter的使用
- android Baseadapter 和 ViewHolder的使用
- android二级列表(BaseExpandableListAdapter的使用) 仿通话记录
- Android 中 ListAactivity 和Activity 使用ListView 以及ArrayAdapter和SimpleAdapter参数详解