package com.likebamboo.osa.android.ui; import android.content.Intent; import android.os.Bundle; import com.etsy.android.grid.StaggeredGridView; import com.likebamboo.osa.android.R; import com.likebamboo.osa.android.entity.CategoryList; import com.likebamboo.osa.android.impl.BaseOnItemClickListener; import com.likebamboo.osa.android.request.JsonRequest; import com.likebamboo.osa.android.request.RequestManager; import com.likebamboo.osa.android.request.RequestParams; import com.likebamboo.osa.android.request.RequestUrl; import com.likebamboo.osa.android.ui.adapter.CategoryAdapter; import com.likebamboo.osa.android.ui.nav.ActivityNavigator; import butterknife.InjectView; /** * 分类界面 */ public class CategoryActivity extends EndlessActivity<CategoryList> { @InjectView(R.id.list_view) StaggeredGridView mListView; @Override protected int getLayoutId() { return R.layout.activity_category; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 设置空态页面 mListView.setEmptyView(mLoadingLayout); // 添加footer mListView.addFooterView(mFooterView); // 设置适配器 mAdapter = new CategoryAdapter(this); mListView.setAdapter(mAdapter); ((CategoryAdapter) mAdapter).setOnItemClickListener(new BaseOnItemClickListener<CategoryList.Category>() { @Override public void onItemClick(int postion, CategoryList.Category item) { if (item == null) { return; } // 开始搜索 Intent i = new Intent(CategoryActivity.this, CategoryBlogActivity.class); // 搜索关键字 i.putExtra(CategoryBlogActivity.EXTRA_CATEGORY_ID, item.getId()); // 设置不显示抽屉导航 i.putExtra(NavigationActivity.EXTRA_SHOULD_DISABLE_DRAWER, true); // 设置标题 i.putExtra(EXTRA_TITLE, item.getName()); ActivityNavigator.withAnim(i, ActivityNavigator.AnimationMode.DEFAULT).startActivity(CategoryActivity.this, i); } }); // 设置加载更多 mListView.setOnScrollListener(this); // 加载数据 loadDatas(); } /** * 加载数据 */ @Override protected void loadDatas(RequestParams params) { // 加载数据 RequestManager.addRequest(new JsonRequest<CategoryList>(RequestUrl.CATEGORY_URL, CategoryList.class, params, responseListener(), errorListener()), this.getClass().getName()); } @Override protected void doOnSuccess(CategoryList data) { if (data == null || data.getList() == null) { showMessage(data); return; } ++mPageIndex; if (data.getList().size() < mPageSize) { mHasMore = false; } else { mHasMore = true; } // 如果数据为空,显示没有更多数据了 if (data.getList().isEmpty()) { showMessage(data); return; } mAdapter.addDatas(data.getList()); } }