package com.liuguilin.lovewallpaper.activity; /* * 项目名: LoveWallpaper * 包名: com.liuguilin.lovewallpaper.activity * 文件名: CategoryActivity * 创建者: LGL * 创建时间: 2017/1/10 16:04 * 描述: 分类详情 */ import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.widget.AbsListView; import android.widget.AdapterView; import android.widget.GridView; import android.widget.LinearLayout; import com.google.gson.Gson; import com.kymjs.rxvolley.RxVolley; import com.kymjs.rxvolley.client.HttpCallback; import com.kymjs.rxvolley.http.VolleyError; import com.liuguilin.lovewallpaper.R; import com.liuguilin.lovewallpaper.adapter.CategoryDataAdapter; import com.liuguilin.lovewallpaper.model.CategoryDataModel; import com.liuguilin.lovewallpaper.model.CategoryGridModel; import com.liuguilin.lovewallpaper.utils.L; import java.util.ArrayList; import java.util.List; public class CategoryActivity extends BaseActivity { private GridView mGridView; private String nextUrl; private String name; private String url; private LinearLayout ll_load_more; private CategoryDataAdapter mCategoryDataAdapter; private List<CategoryGridModel> mList = new ArrayList<>(); private ArrayList<String>mListBigUrl = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_category); initView(); } private void initView() { mGridView = (GridView) findViewById(R.id.mGridView); ll_load_more = (LinearLayout) findViewById(R.id.ll_load_more); Intent intent = getIntent(); name = intent.getStringExtra("name"); url = intent.getStringExtra("url"); if (!TextUtils.isEmpty(name)) { getSupportActionBar().setTitle(name); } if (!TextUtils.isEmpty(url)) { getData(url); } //监听滑动到最后 mGridView.setOnScrollListener(new AbsListView.OnScrollListener() { @Override public void onScrollStateChanged(AbsListView absListView, int i) { if (i == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) { if (mGridView.getLastVisiblePosition() == mGridView.getCount() - 1) { ll_load_more.setVisibility(View.VISIBLE); loadData(); } } } @Override public void onScroll(AbsListView absListView, int i, int i1, int i2) { } }); mGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { Intent intent = new Intent(CategoryActivity.this, GalleryActivity.class); intent.putExtra("position", i); intent.putStringArrayListExtra("bigUrl", mListBigUrl); startActivity(intent); } }); } //加载数据 private void loadData() { RxVolley.get(nextUrl, new HttpCallback() { @Override public void onSuccess(String t) { ll_load_more.setVisibility(View.GONE); parsingJson(t); mCategoryDataAdapter.notifyDataSetChanged(); } @Override public void onFailure(VolleyError error) { super.onFailure(error); } }); } //解析 private void getData(String url) { RxVolley.get(url, new HttpCallback() { @Override public void onSuccess(String t) { parsingJson(t); mCategoryDataAdapter = new CategoryDataAdapter(CategoryActivity.this, mList); mGridView.setAdapter(mCategoryDataAdapter); } @Override public void onFailure(VolleyError error) { L.i(error.toString()); } }); } private void parsingJson(String t) { Gson gson = new Gson(); CategoryDataModel model = gson.fromJson(t, CategoryDataModel.class); nextUrl = model.getLink().getNext(); for (int i = 0; i < model.getData().size(); i++) { CategoryGridModel models = new CategoryGridModel(); models.setSmall(model.getData().get(i).getSmall()); models.setDown_stat(model.getData().get(i).getDown_stat()); models.setDown(model.getData().get(i).getDown()); models.setBig(model.getData().get(i).getBig()); mListBigUrl.add(model.getData().get(i).getBig()); models.setKey(model.getData().get(i).getKey()); mList.add(models); } } }