package com.bwie.lenovo.yk1.fragment.channelfragment; 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.AbsListView; import android.widget.ListView; import android.widget.TextView; import com.bwie.lenovo.yk1.R; import com.bwie.lenovo.yk1.adapter.BannerAdapter; import com.bwie.lenovo.yk1.adapter.CTwoAdapter; import com.bwie.lenovo.yk1.bean.COneBean; import com.bwie.lenovo.yk1.bean.banner.BannerBean; import com.bwie.lenovo.yk1.net.HttpUtils; import com.google.gson.Gson; import com.handmark.pulltorefresh.library.PullToRefreshListView; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.List; /** * A simple {@link Fragment} subclass. */ public class CTwoFragment extends Fragment { private String bannerApi="http://www.wanandroid.com/banner/json"; private String listApi = "http://gank.io/api/data/Android/10/"; private List<COneBean.ResultsBean> resultsBeans= new ArrayList<>(); private PullToRefreshListView pullToRefreshListView; private int listPage=1; private ViewPager tvBanner; private TextView tvBannerNum; private TextView tvBannerTitle; private Handler handler=new Handler(){ private List<BannerBean.DataBean> data; @Override public void handleMessage(Message msg) { switch (msg.what){ case 1: Gson gson = new Gson(); BannerBean bannerBean = gson.fromJson((String) msg.obj, BannerBean.class); data = bannerBean.getData(); tvBanner.setAdapter(new BannerAdapter(getActivity(),data,tvBannerNum,tvBannerTitle)); sendEmptyMessageDelayed(3, 2000); break; case 2: Gson gson1 = new Gson(); COneBean cOneBean = gson1.fromJson((String) msg.obj, COneBean.class); if(listPage == 1){ resultsBeans.clear(); } resultsBeans.addAll(cOneBean.getResults()); pullToRefreshListView.onRefreshComplete(); break; case 3: int currentItem = tvBanner.getCurrentItem(); tvBanner.setCurrentItem((currentItem+1) ); sendEmptyMessageDelayed(3, 2000); break; } } }; public CTwoFragment() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View view = inflater.inflate(R.layout.fragment_ctwo, container, false); pullToRefreshListView = view.findViewById(R.id.pukll_to_refresh_listview); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); pullToRefreshListView.setAdapter(new CTwoAdapter(getActivity(),resultsBeans)); ListView listView = pullToRefreshListView.getRefreshableView(); AbsListView.LayoutParams layoutParams = new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, 600); View headView=View.inflate(getActivity(), R.layout.banner_layout, null); tvBanner= headView.findViewById(R.id.vp_banner); tvBannerNum = headView.findViewById(R.id.tv_banner_num); tvBannerTitle = headView.findViewById(R.id.tv_banner_title); headView.setLayoutParams(layoutParams); listView.addHeaderView(headView); loadData(); } private void loadData() { new Thread(){ @Override public void run() { get(bannerApi, 1); get(listApi+listPage,2); } }.start(); } public void get(String ur,int i){ try { URL asyncUrl = new URL(ur); HttpURLConnection connection = (HttpURLConnection) asyncUrl.openConnection(); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); if (connection.getResponseCode() == 200) { String result = inputStream2String(connection.getInputStream()); Message msg=Message.obtain(); msg.what=i; msg.obj=result; handler.sendMessage(msg); } } catch (Exception e) { e.printStackTrace(); } } public String inputStream2String(InputStream inputStream) throws IOException { ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); int len=-1; byte[] b =new byte[1024]; while ((len=inputStream.read(b))!=-1){ byteArrayOutputStream.write(b, 0, len); } return new String(byteArrayOutputStream.toByteArray()); } }
轮播图界面CTwoFragment
最新推荐文章于 2023-07-16 14:54:03 发布