public View getView(int position, View convertView, ViewGroup parent) {
TextView nameView=null;
TextView phoneView=null;
//convertview是原来有布局情况下的布局,若是第一次启动则为空;
if(convertView==null){
convertView=inflater.inflate(resource, null);
nameView=(TextView) convertView.findViewById(R.id.name);
phoneView=(TextView) convertView.findViewById(R.id.phone);

ViewCach cach=new ViewCach();
cach.nameView=nameView;
cach.phoneView=phoneView;
convertView.setTag(cach);//将view的绑定设置放到缓存中,到了下一页要用时直接提取,提高响应速度;

}
else{
ViewCach cach=(ViewCach) convertView.getTag();
nameView=cach.nameView;
phoneView=cach.phoneView;

}
Person person=persons.get(position);
nameView.setText(person.getName());
phoneView.setText(person.getPhone());
return convertView;
}
nameView.setText(person.getName());
phoneView.setText(person.getPhone());
这两句是有使用遍历吗?不然一个listview如何显示多条记录。求原理

解决方案 »

  1.   

    persons是一个ArrayList,通过position取不同数据
      

  2.   

    getView() 方法是回调方法,有Andriod框架调用。
    ListView 或其他AdapterView会根据你的数据适配器中实现的getCount()方法的返回值来确定你的数据条目数,有多少条数据,就会调用多少次getView方法,并且会将当前的数据项的索引通过getView方法的参数传递给你,让你知道当前要处理的数据项是哪一项。你只需要知道真对怎么使用UI形式来展示当前的数据项可以了。