关于ListView使用BaseAdapter和SimpleAdapter适配器

时间:2021-10-23 19:33:41



匹配关系, 自动生成View, 装入ListView

* 参数1: 上下文环境
* 参数2: 数据,  List<Map<String, Object>>, 每个Person的数据装入一个Map, 将所有Map装入List
* 参数3: 布局文件的资源id
* 参数4: Map中的key, 和参数5中的id对应, 将指定key的value放入View中指定id对应的组件上
* 参数5: View中的id

*/


BaseAdapter

     private class MyBaseAdapter extends BaseAdapter {// 定义Adapter, 把每个Person对象生成一个条目, 将所有条目装入ListView
public int getCount() { //返回ListView中要装入条目的数量.// 返回ListView中要装入的条目的数量
return persons.size(); 
}
public Object getItem(int position) {//返回指定位置上的对象.// 返回指定位置上的对象
return persons.get(position);
}
public long getItemId(int position) {// 返回条目的id
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {// 返回指定位置上的条目, 条目会被自动添加到ListView中
View item = View.inflate(getApplicationContext(), R.layout.item, null);// 根据布局文件创建View(LinearLayout)
TextView idTV = (TextView) item.findViewById(R.id.idTV);// 获取这个新生成的View中的TextView
TextView nameTV = (TextView) item.findViewById(R.id.nameTV);
TextView balanceTV = (TextView) item.findViewById(R.id.balanceTV);
Person p = persons.get(position);// 根据位置获取Person对象
idTV.setText(p.getId() + "");// 给TextView设置文本
nameTV.setText(p.getName());
balanceTV.setText(p.getBalance() + "");
return item;
}
}