好库网
package com.yixia.zi.widget;

import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;

/**
 * An implementation of {@link BaseAdapter} which uses the new/bind pattern for
 * its views.
 */
public abstract class BindingAdapter extends BaseAdapter {
	@Override
	public final View getView(int position, View convertView, ViewGroup parent) {
		int type = getItemViewType(position);
		if (convertView == null) {
			convertView = newView(type, parent);
		}
		bindView(position, type, convertView);
		return convertView;
	}

	/** Create a new instance of a view for the specified {@code type}. */
	public abstract View newView(int type, ViewGroup parent);

	/** Bind the data for the specified {@code position} to the {@code view}. */
	public abstract void bindView(int position, int type, View view);
}