package com.qiwenge.android.fragments.bookcity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import com.liuguangqiang.framework.utils.PreferencesUtils; import com.qiwenge.android.act.BookDetailActivity; import com.qiwenge.android.adapters.BooksAdapter; import com.qiwenge.android.async.AsyncGetCacheBooks; import com.qiwenge.android.async.AsyncGetCacheBooks.CacheBooksHandler; import com.qiwenge.android.async.AsyncUtils; import com.qiwenge.android.base.BaseListFragment; import com.qiwenge.android.constant.Constants; import com.qiwenge.android.entity.Book; import com.qiwenge.android.entity.BookList; import com.qiwenge.android.utils.ApiUtils; import com.qiwenge.android.utils.http.JsonResponseHandler; import java.util.List; /** * 推荐。 CategorysFragment * <p/> * Created by John on 2014年5月31日 */ public class RecommendFragment extends BaseListFragment<Book> { private static final String CACHE_RECOMMEND = "cache_recommend"; @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); initViews(); getCacheData(); } private void getCacheData() { new AsyncGetCacheBooks(getActivity().getApplicationContext(), new CacheBooksHandler() { @Override public void onSuccess(List<Book> list) { adapter.add(list); requestData(); } @Override public void onEmpty() { System.out.println("Recommend cache is empty"); requestData(); } }).execute(CACHE_RECOMMEND); } private void cacheRecommend(String json) { if (isAdded()) PreferencesUtils.putString(getActivity().getApplicationContext(), Constants.PRE_SAVE_NAME, CACHE_RECOMMEND, json); } @Override public void initViews() { super.initViews(); adapter = new BooksAdapter(getActivity(), data); setAdapter(); mListView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { if (position < data.size()) { Bundle extra = new Bundle(); extra.putParcelable(BookDetailActivity.EXTRA_BOOK, data.get(position)); startActivity(BookDetailActivity.class, extra); } } }); } @Override public void requestData() { super.requestData(); getRecommend(); } /** * 获取推荐的书籍。 */ private void getRecommend() { String url = ApiUtils.getRecommend(); AsyncUtils.getBooks(getActivity(), url, pageindex, new JsonResponseHandler<BookList>(BookList.class) { @Override public void onOrigin(String json) { if (pageindex == 1) cacheRecommend(json); } @Override public void onSuccess(BookList result) { if (result != null) { requestSuccess(result.result); } } @Override public void onFailure(String msg) { requestFailure(); } @Override public void onStart() { } @Override public void onFinish() { requestFinished(); } }); } }