Pau*_*aul 1 java android android-listview
能否帮我理解带有自定义数据的适配器:
我正在阅读一个教程,解释了用类似的模型填充listView MyBook(例如2个变量:作者和标题),我们应该创建一个BaseAdapter的子类并覆盖这些方法:
这是代码:
public LivreAdapter(Context context,List<Livre> biblio) {
inflater = LayoutInflater.from(context);
this.biblio = biblio;
}
@Override
public int getCount() {
return biblio.size();
}
@Override
public Object getItem(int position) {
return biblio.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
private class ViewHolder {
TextView tvTitre;
TextView tvAuteur;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView == null) {
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.itemlivre, null);
holder.tvTitre = (TextView)convertView.findViewById(R.id.tvTitre);
holder.tvAuteur = (TextView)convertView.findViewById(R.id.tvAuteur);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.tvTitre.setText(biblio.get(position).getTitre());
holder.tvAuteur.setText(biblio.get(position).getAuteur());
return convertView;
}
}
Run Code Online (Sandbox Code Playgroud)
我们是否只创建BaseAdapter的子类以按照我们想要的方式显示自定义数据(带字幕等)?因为用String数组填充listView非常简单,所以我们需要将BaseAdapter子类化...
我在doc中找不到那些方法,所以getItem会在getView之前调用吗?在方法的最后,我们设置"holder"来保存数据库中的文本,但是我没有看到我们重新使用这个"holder"的位置,因为返回的唯一变量是"convertView"?
我正在寻找文档中的信息,但找不到能帮助我理解课程过程的东西.
还有其他类也可以是子类.简单的listView很有用,但它不能用于显示自定义数据.为了能够使用自定义数据填充listView,您需要使用一个扩展listView的每一行的适配器.getItem可以在getView中使用,以便从列表中获取特定条目.当适配器创建View时,这些视图被回收,因此可以使用ViewHolders
| 归档时间: |
|
| 查看次数: |
1894 次 |
| 最近记录: |