扩展BaseAdapter类是为了创建一个自定义的适配器类,以便将数据与视图绑定在一起,将数据源中的每个数据项呈现在列表或网格视图中。
这些方法来自BaseAdapter类和Adapter接口。BaseAdapter是一个抽象类,实现了Adapter接口,并提供了一些默认的实现。扩展BaseAdapter类可以重写这些方法来适应特定的需求。
下面是一个示例代码,展示如何扩展BaseAdapter类并重写其中的方法:
public class CustomAdapter extends BaseAdapter {
private Context context;
private List data;
public CustomAdapter(Context context, List data) {
this.context = context;
this.data = data;
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return data.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = LayoutInflater.from(context).inflate(R.layout.list_item, parent, false);
viewHolder.textView = convertView.findViewById(R.id.text_view);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
String item = (String) getItem(position);
viewHolder.textView.setText(item);
return convertView;
}
private static class ViewHolder {
TextView textView;
}
}
在上面的代码中,CustomAdapter类扩展了BaseAdapter类,并实现了其中的方法。它接收一个上下文对象和一个数据源作为构造函数的参数。在getView方法中,通过convertView复用已经存在的视图,提高了列表的性能。 ViewHolder类用于保存视图中的子视图,避免每次都调用findViewById方法。
通过这样的方式,我们可以根据需求实现自定义的适配器类,并在ListView或GridView中使用它。