GridView  与之类似 

Baseadapter 类有好几个方法

 

public ListviewActivity(Context context,List<datasu> list)
{
this.context=context;
this.list=list;
}
@Override
public int getCount() {//代表有多少条数据
// TODO Auto-generated method stub
return list.size();
}

@Override
public Object getItem(int arg0) {//获得数据集合中特定位置的数据项 不是在baseadapter类中调用 是在adapterview 中调用
// TODO Auto-generated method stub
return arg0;
}

@Override
public long getItemId(int arg0) {//返回对应item的id
// TODO Auto-generated method stub
return arg0;
}

@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub
ViewHolder holder=null;
if(arg1==null)//判断缓存中是否存在 arg1这个view  不存在则创建  存在则用缓存中的view 可以提升性能   不进行判断的话 会每次new一个 view 严重影响性能  尤其是数据量大的时候
{
holder=new ViewHolder();
arg1=LayoutInflater.from(context).inflate(R.layout.tt, null);//通过layoutinflater映射一个自己定义的layout布局文件加载或者创建
holder.ediname=(TextView)arg1.findViewById(R.id.txtname);
holder.ediage=(TextView)arg1.findViewById(R.id.txtage);
holder.edisno=(TextView)arg1.findViewById(R.id.txtsno);
holder.edigender=(TextView)arg1.findViewById(R.id.txtgender);
holder.edischool=(TextView)arg1.findViewById(R.id.txtschool);
holder.lin=(LinearLayout)arg1.findViewById(R.id.lin);
arg1.setTag(holder);// //将设置好的布局保存到缓存中,并将其设置在Tag里,以便后面方便取出Tag 
}
else {
holder=(ViewHolder)arg1.getTag();//获取数据
}
datasu datasu=list.get(arg0);
holder.ediname.setText("姓名"+datasu.name);
holder.edisno.setText("学号"+datasu.sno);
holder.ediage.setText("年龄"+datasu.age);
holder.edigender.setText("性别"+datasu.gender);
holder.edischool.setText("学校"+datasu.school);
if(arg0%2==0)
{
holder.lin.setBackgroundColor(context.getResources().getColor(R.color.list1));
}
else {
holder.lin.setBackgroundColor(context.getResources().getColor(R.color.list2));
}
return arg1;
}

 

创建ViewHolder 类

private class ViewHolder
{
TextView ediname,ediage,edisno,edigender,edischool;
LinearLayout lin;
}