package com.youxiachai.demo.controller.collections.adapter; import java.util.ArrayList; import java.util.List; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Toast; import com.androidquery.AQuery; import com.androidquery.callback.AjaxStatus; import com.youxiachai.ajax.ICallback; import com.youxiachai.controller.adapter.IAdapterMethod; import com.youxiachai.demo.R; import com.youxiachai.demo.model.api.CollectionListApi; import com.youxiachai.demo.model.bean.BookInfo; import com.youxiachai.demo.model.bean.Collection; /** * @author youxiachai * @date 2013-7-17 */ public class CollectionsAdapter extends BaseAdapter implements IAdapterMethod { private AQuery query; private CollectionListApi collections; private List<Collection> collectionList = new ArrayList<Collection>(); private LayoutInflater mInflater; public CollectionsAdapter(AQuery request) { this.query = request; this.mInflater = request.getActivity().getLayoutInflater(); collections = new CollectionListApi(); } @Override public int getCount() { // TODO Auto-generated method stub return collectionList.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return collectionList.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub if (convertView == null) { convertView = mInflater.inflate(R.layout.item_list, null); } AQuery itemQy = query.recycle(convertView); BookInfo book = collectionList.get(position).book; itemQy.id(R.id.imageView1).image(book.image, true, true); return convertView; } @Override public void post(Bundle queryMap) { collections.get(queryMap, query, new ICallback<CollectionListApi>() { @Override public void onSuccess(CollectionListApi result, Enum<?> type, AjaxStatus status) { // TODO Auto-generated method stub collectionList = result.collections; total = result.total; notifyDataSetInvalidated(); } @Override public void onError(int code, String message) { // TODO Auto-generated method stub } }); } static int total; static boolean isLoad = false; /** * 获取更多 */ @Override public void put(Bundle queryMap) { if(total > getCount() && !isLoad){ isLoad = true; queryMap.putInt(CollectionListApi.Path.START, getCount()); Log.d("AQuery", "count-->" + getCount()); collections.get(queryMap, query, new ICallback<CollectionListApi>() { @Override public void onSuccess(CollectionListApi result, Enum<?> type, AjaxStatus status) { collectionList.addAll(result.collections); isLoad = false; notifyDataSetChanged(); } @Override public void onError(int code, String message) { // TODO Auto-generated method stub } }); }else{ Toast.makeText(query.getContext(), "没有更多了..", Toast.LENGTH_SHORT).show(); } } }