package com.example.ggq.xiaomi.activity; import android.annotation.SuppressLint; import android.os.Handler; import android.os.Message; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.AbsListView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; import com.example.ggq.xiaomi.R; import com.example.ggq.xiaomi.activity.adapter.BannerAdapter; import com.example.ggq.xiaomi.activity.adapter.GoodsAdapter; import com.example.ggq.xiaomi.activity.bean.GoodsBean; import com.example.ggq.xiaomi.activity.bean.banner.BannerBean; import com.example.ggq.xiaomi.activity.net.HttpUtils; import com.google.gson.Gson; import com.google.gson.JsonElement; import com.handmark.pulltorefresh.library.PullToRefreshBase; import com.handmark.pulltorefresh.library.PullToRefreshListView; import java.util.ArrayList; import java.util.List; public class GoodsActivity extends AppCompatActivity { private static final int CODE_BANNER = 1; private static final int CODE_LIST = 2; private static final int CODE_START_BANNER = 3; private PullToRefreshListView list_view; private List<GoodsBean.DataBean> dataBeans = new ArrayList<>(); private HttpUtils httpUtils; private String bannerApi = "https://www.zhaoapi.cn/quarter/getAd"; private String listApi = "https://www.zhaoapi.cn/product/searchProducts?keywords=%E6%89%8B%E6%9C%BA&source=android&page="; private int page = 1; private BannerCallback bannerCallback = new BannerCallback(); private ListCallback listCallback = new ListCallback(); private String TAG = GoodsActivity.class.getSimpleName(); @SuppressLint("HandlerLeak") private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case CODE_BANNER://解析轮播数据 Gson bannerGson = new Gson(); BannerBean bannerBean = bannerGson.fromJson((String) msg.obj, BannerBean.class); bannerBeanData = bannerBean.getData(); view_pager.setAdapter(new BannerAdapter(GoodsActivity.this,bannerBeanData,text_num,head_title)); sendEmptyMessageDelayed(CODE_START_BANNER,2000); break; case CODE_LIST: Gson gson = new Gson(); GoodsBean goodsBean = gson.fromJson((String) msg.obj, GoodsBean.class); if(page == 1){ dataBeans.clear(); } dataBeans.addAll(goodsBean.getData()); adapter.notifyDataSetChanged(); list_view.onRefreshComplete(); break; case CODE_START_BANNER: int currentItem = view_pager.getCurrentItem(); view_pager.setCurrentItem((currentItem+1)); sendEmptyMessageDelayed(CODE_START_BANNER,2000); break; } } }; private List<BannerBean.DataBean> bannerBeanData; private GoodsAdapter adapter; private ViewPager view_pager; private TextView head_title; private TextView text_num; private LinearLayout head_linear; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_goods); list_view = findViewById(R.id.pull_to_refresh_goods_list_view); list_view.setMode(PullToRefreshBase.Mode.BOTH); //添加轮播 ListView listView = list_view.getRefreshableView(); View headView = View.inflate(GoodsActivity.this, R.layout.banner_layout, null); view_pager = headView.findViewById(R.id.head_view_pager); head_title = headView.findViewById(R.id.head_title); text_num = headView.findViewById(R.id.head_num); head_linear = headView.findViewById(R.id.head_linear); listView.addHeaderView(headView); httpUtils = HttpUtils.getInstance(); httpUtils.get(bannerApi, bannerCallback); httpUtils.get(listApi + page, listCallback); adapter = new GoodsAdapter(GoodsActivity.this, dataBeans); list_view.setAdapter(adapter); } class BannerCallback implements HttpUtils.NetCallback { @Override public void onSuccess(String s) { Message bannerMessage = Message.obtain(); bannerMessage.what = CODE_BANNER; bannerMessage.obj = s; handler.sendMessage(bannerMessage); } @Override public void onError(String errorMsg) { Log.i("+++", "banner" + errorMsg); } } class ListCallback implements HttpUtils.NetCallback { @Override public void onSuccess(String s) { Message listMessage = Message.obtain(); listMessage.what = CODE_LIST; listMessage.obj = s; handler.sendMessage(listMessage); } @Override public void onError(String errorMsg) { Log.i("+++", "list" + errorMsg); } } }
VIewPager无限轮播+PullToRefreshListView上下拉刷新加载数据
猜你喜欢
转载自blog.csdn.net/weixin_42470335/article/details/80848892
今日推荐
周排行