在本例子中就算 刷新listview也不会造成获取的item的View异常
其实这里面只用自己更改下getItem的返回值就可以了
这个玩意不难
只是部分方法属性可能大家不熟悉 在这里直接上源码了:
public class Badapter extends BaseAdapter{
private ListView mListview;
private Context context;
@Override
public Badapter(Context mcontext,ListView Listview) {
context=mcontext;this.mListview=Listview;
}
static List<String> mArrayS=new ArrayList<String>();
static{
for (int i = 0; i < 100; i++) {
mArrayS.add(i+" "+" "+i);
}
}
public int getCount() {
// Log.e("debug", "-----getCount");
return mArrayS.size();
}
public Object getItem(int position) {
// Log.e("debug", "-----getItem");
return this.getView(position, null, mListview);
//最重要的地方 在activity中直接调用 Badapter 的 getItem(position)就可以了获取的就是ConvertView
}
public long getItemId(int position) {
//Log.e("debug", "-----getItemId");
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
//TextView tv=new TextView(context);
Log.e("debug", "-----getView ---->convertView==null+Posotion: "+position);
tv.setText(mArrayS.get(position));
convertView=tv ;
return convertView;
}
}