package com.atguigu.beijingnews.detailpager; import android.content.Context; import android.graphics.Color; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.text.TextUtils; import android.util.Log; import android.view.View; import android.widget.ImageButton; import com.atguigu.baselibrary.CacheUtils; import com.atguigu.baselibrary.Constants; import com.atguigu.beijingnews.R; import com.atguigu.beijingnews.adapter.PhotosMenuDetailPagerAdapter; import com.atguigu.beijingnews.base.MenuDetailBasePager; import com.atguigu.beijingnews.bean.NewsCenterBean; import com.atguigu.beijingnews.bean.PhotosMenuDetailPagerBean; import com.google.gson.Gson; import com.zhy.http.okhttp.OkHttpUtils; import com.zhy.http.okhttp.callback.StringCallback; import butterknife.ButterKnife; import butterknife.InjectView; import okhttp3.Call; /** * 作者:尚硅谷-杨光福 on 2017/2/6 11:27 * 微信:yangguangfu520 * QQ号:541433511 * 作用:图组详情页面 */ public class PhotosMenuDetailPager extends MenuDetailBasePager { private final NewsCenterBean.DataBean dataBean; private PhotosMenuDetailPagerAdapter adapter; @InjectView(R.id.recyclerview) RecyclerView recyclerview; @InjectView(R.id.swipe_refresh_layout) SwipeRefreshLayout swipe_refresh_layout; private String url; public PhotosMenuDetailPager(Context context, NewsCenterBean.DataBean dataBean) { super(context); this.dataBean = dataBean; } @Override public View initView() { //图组详情页面的视图 View view = View.inflate(mContext, R.layout.photos_menudetail_pager, null); ButterKnife.inject(this, view);//swipe_refresh_layout被实例化了 //设置下拉多少距离起作用 swipe_refresh_layout.setDistanceToTriggerSync(100);//设置下拉的距离 swipe_refresh_layout.setColorSchemeColors(Color.BLUE, Color.RED);//设置不同颜色 //设置背景的颜色 swipe_refresh_layout.setProgressBackgroundColorSchemeResource(android.R.color.holo_blue_bright); //设置下拉刷新的监听 swipe_refresh_layout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { // Toast.makeText(mContext, "我被拉下来了", Toast.LENGTH_SHORT).show(); getDataFromNet(url); } }); return view; } @Override public void initData() { super.initData(); url = Constants.BASE_URL + dataBean.getUrl(); Log.e("TAG", "图组的网络地址=====" + url); String saveJson = CacheUtils.getString(mContext, url); if (!TextUtils.isEmpty(saveJson)) { processData(saveJson); } getDataFromNet(url); } private void getDataFromNet(final String url) { // RequestParams params = new RequestParams(url); // x.http().get(params, new Callback.CommonCallback<String>() { // @Override // public void onSuccess(String result) { // Log.e("TAG","图组数据请求成功=="); // CacheUtils.putString(mContext,url,result); // processData(result); // swipe_refresh_layout.setRefreshing(false); // } // // @Override // public void onError(Throwable ex, boolean isOnCallback) { // Log.e("TAG","图组数据请求失败=="+ex.getMessage()); // } // // @Override // public void onCancelled(CancelledException cex) { // // } // // @Override // public void onFinished() { // // } // }); OkHttpUtils .get() .url(url) // .addParams("username", "atguig") // .addParams("password", "123") .build() .execute(new StringCallback() { @Override public void onError(Call call, Exception e, int id) { Log.e("TAG", "okhttp图组数据请求失败==" + e.getMessage()); } @Override public void onResponse(String response, int id) { Log.e("TAG", "okhttp图组数据请求成功=="); CacheUtils.putString(mContext, url, response); processData(response); swipe_refresh_layout.setRefreshing(false); } }); } private void processData(String json) { PhotosMenuDetailPagerBean bean = new Gson().fromJson(json, PhotosMenuDetailPagerBean.class); Log.e("TAG", "数组解析数据成功======" + bean.getData().getNews().get(0).getTitle()); //设置RecyclerView的适配器 adapter = new PhotosMenuDetailPagerAdapter(mContext, bean.getData().getNews(), recyclerview); recyclerview.setAdapter(adapter); //设置布局管理器 recyclerview.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false)); } private boolean isList = true; public void swichListGrid(ImageButton ib_swich_list_gird) { if (isList) { //Grid isList = false; //设置布局管理器 recyclerview.setLayoutManager(new GridLayoutManager(mContext, 2, GridLayoutManager.VERTICAL, false)); //按钮设置List效果 ib_swich_list_gird.setImageResource(R.drawable.icon_pic_list_type); } else { //List recyclerview.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false)); isList = true; //按钮设置Grid效果 ib_swich_list_gird.setImageResource(R.drawable.icon_pic_grid_type); } } }