【发布时间】:2015-12-13 20:28:12
【问题描述】:
你能帮我理解带有自定义数据的适配器吗:
我正在阅读一个教程,该教程解释了要使用 MyBook 之类的模型(具有 2 个变量:例如作者和标题)填充 listView,我们应该创建 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;
}
}
我们是否创建 BaseAdapter 的子类只是为了以我们想要的方式显示自定义数据(带有字幕等)?因为用String数组填充listView真的很简单,这里我们需要继承BaseAdapter...
-
我在文档中找不到这些方法,所以 getItem 会在 getView 之前被调用吗?在方法结束时,我们设置“holder”来保存数据库中的文本,但我看不出我们在哪里重复使用这个“holder”,因为返回的唯一变量是“convertView”?
我正在寻找文档中的信息,但找不到可以帮助我准确理解课程过程的信息。
【问题讨论】:
标签: java android android-listview