package com.example.yuekaomoni.fragment; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v4.view.ViewPager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.RadioGroup; import com.bwei.imageloaderlibrary.utils.ImageLoaderUtils; import com.example.yuekaomoni.R; import com.example.yuekaomoni.after.Mybaseafter; import com.example.yuekaomoni.after.Mypageafter; import com.example.yuekaomoni.bean.banner; import com.example.yuekaomoni.bean.news; import com.google.gson.Gson; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.List; import xlistview.bawei.com.xlistviewlibrary.XListView; /** * Created by 赵则则 on 2018/7/28. */ public class Fragmentb extends Fragment { private ViewPager viewPager; private RadioGroup radioGroup; private List<ImageView> list = new ArrayList<>(); private int i; private Mypageafter adapter; private XListView xListView; private List<com.example.yuekaomoni.bean.news.DataBean> arraylist; private int page = 1; private Mybaseafter adapters; private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 0: String json = (String) msg.obj; Gson gson = new Gson(); banner banner = gson.fromJson(json, banner.class); List<com.example.yuekaomoni.bean.banner.DataBean> data = banner.getData(); for (int i = 0; i < data.size(); i++) { String s = data.get(i).getImg(); ImageView imageview = new ImageView(getActivity()); DisplayImageOptions options = ImageLoaderUtils.getOptions(); ImageLoader.getInstance().displayImage(s, imageview, options); list.add(imageview); } adapter = new Mypageafter(getActivity(), list); viewPager.setAdapter(adapter); Message obtain = Message.obtain(); obtain.what = 2; obtain.obj = msg.obj; sendMessage(obtain); break; case 1: i = viewPager.getCurrentItem(); i++; viewPager.setCurrentItem(i); handler.sendEmptyMessageDelayed(1, 2000); break; case 2: String jsona = (String) msg.obj; Gson gsona = new Gson(); news news = gsona.fromJson(jsona, news.class); List<com.example.yuekaomoni.bean.news.DataBean> data1 = news.getData(); if (page == 1) { arraylist = new ArrayList<com.example.yuekaomoni.bean.news.DataBean>(); } for (int i = 0; i < data1.size(); i++) { arraylist.add(data1.get(i)); } adapters = new Mybaseafter(getActivity(), arraylist); xListView.setAdapter(adapters); break; case 3: xListView.stopRefresh(); break; case 4: xListView.stopLoadMore(); break; } } }; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragmentb, container, false); viewPager = (ViewPager) view.findViewById(R.id.viewpager); radioGroup = (RadioGroup) view.findViewById(R.id.radioGroup1); xListView = (XListView) view.findViewById(R.id.xlistview); xListView.setPullRefreshEnable(true); xListView.setPullLoadEnable(true); xListView.setXListViewListener(new XListView.IXListViewListener() { @Override public void onRefresh() { page = 1; getServerdata(); handler.sendEmptyMessageDelayed(3, 2000); } @Override public void onLoadMore() { page++; getServerdata(); handler.sendEmptyMessageDelayed(4, 2000); } }); viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { try { if (radioGroup != null) { radioGroup.check(radioGroup.getChildAt(position % list.size()).getId()); } } catch (Exception e) { e.printStackTrace(); } } @Override public void onPageScrollStateChanged(int state) { } }); getServerdata(); return view; } public void getServerdata() { new Thread() { @Override public void run() { super.run(); String path = "http://www.xieast.com/api/banner.php"; try { URL url = new URL(path); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); connection.setRequestMethod("GET"); if (connection.getResponseCode() == 200) { InputStream inputStream = connection.getInputStream(); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); byte[] bs = new byte[1024]; int len = 1; while ((len = inputStream.read(bs)) != -1) { outputStream.write(bs, 0, len); } inputStream.close(); outputStream.close(); String s = outputStream.toString(); Message message = Message.obtain(); message.what = 0; message.obj = s; handler.sendMessage(message); } } catch (Exception e) { e.printStackTrace(); } } }.start(); } @Override public void onResume() { super.onResume(); handler.sendEmptyMessageDelayed(1, 2000); } @Override public void onPause() { super.onPause(); handler.removeCallbacksAndMessages(null); } }