package net.yasite.adapter;
import java.util.ArrayList;
import java.util.List;
import net.yasite.test.BaseApplication;
import net.yasite.test.R;
import android.content.Context;
import android.graphics.Bitmap;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
public abstract class YasiteAdapter extends BaseAdapter {
protected int layoutId;
protected Context context;
protected ImageLoader mImageLoader;
protected DisplayImageOptions options;
public YasiteAdapter(Context context){
this.context = context;
}
protected void setImageLoader(){
mImageLoader = BaseApplication.initImageLoader(context);
options = new DisplayImageOptions.Builder()
.bitmapConfig(Bitmap.Config.RGB_565)
.showStubImage(R.drawable.ic_launcher)
.showImageForEmptyUri(R.drawable.ic_launcher)
.showImageOnFail(R.drawable.ic_launcher)
.cacheInMemory(true)
.cacheOnDisc(true)
.build();
}
@Override
public View getView(int position, View convertView, ViewGroup arg2) {
ViewHolder mViewHolder;
if(null == convertView){
mViewHolder = setHolder();
setLayoutResource(position);
convertView = LayoutInflater.from(context).inflate(layoutId, null);
this.setupChildViews(convertView, mViewHolder);
convertView.setTag(mViewHolder);
} else{
mViewHolder = (ViewHolder) convertView.getTag();
}
setChildViewData(mViewHolder, position, getItem(position));
return convertView;
}
protected abstract void setupChildViews(View convertView,ViewHolder holder);
protected abstract void setChildViewData(ViewHolder holder,int position,Object obj);
protected abstract class ViewHolder{};
protected abstract ViewHolder setHolder();
protected abstract void setLayoutResource(int position);
}