关于Adaper的相关用法

使用BaseAdapter的话需要重载四个方法:

getCount

getItem

getItemId

getView

getView是用来刷新它所在的ListView的。在每一次item从屏幕外滑进屏幕内的时候,或程序刚开始的时候创建第一屏item的时候。

public abstract View getView (int position, View convertView, ViewGroup parent)

position是指当前dataset的位置,通过getCount和getItem来使用。如果list向下滑动的话那么就是最低端的item的位置,如果是向上滑动的话那就是最上端的item的位置。conert是指可以重用的视图,即刚刚出队的视图。parent应该就是list。

在使用BaseAdapter时一般有如下定义:

public class MyAdapter extends BaseAdapter{
     private ArrayList<String> listdata;
     private Context context;
     public MyAdapter(Context context,ArrayList<String> listdata){
     this.context = context;
     this.listdata = listdata;
     }
@Override
public int getCount() {
// TODO Auto-generated method stub
return listdata.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return listdata.get(arg0);
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub
Log.i("position",arg0+"");
TextView tmView;
String temstr;
if(arg1 == null){
TextView tm = new TextView(context);
tmView = tm;
tmView.setTag("old" + arg0);
tmView.setText(listdata.get(arg0));
}else {
tmView = (TextView)arg1;
tmView.setText(listdata.get(arg0) + " " + arg1.getTag());
}
  return tmView;
}

原文地址:https://www.cnblogs.com/gszw/p/7765314.html