public class FragmentNews extends Fragment { private ViewPager vp; private ListView lv; private RadioGroup rg; private RadioButton rb_news; private RadioButton rb_me; private VpBean vb; private List<ImageView> viewList; private MyPagerAdapter adapter; int index = 0; List<RadioButton> rbs = new ArrayList<RadioButton>(); Handler handler = new Handler(); private LvBean lb; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = View.inflate(getActivity(), R.layout.frag_news,null); vp = view.findViewById(R.id.ya_news_vp); lv = view.findViewById(R.id.ya_news_lv); rg = view.findViewById(R.id.ya_news_rg); rb_news = view.findViewById(R.id.ya_rg_news); rb_me = view.findViewById(R.id.ya_rg_me); RadioButton rb1 = view.findViewById(R.id.news_rb1); RadioButton rb2 = view.findViewById(R.id.news_rb2); RadioButton rb3 = view.findViewById(R.id.news_rb3); RadioButton rb4 = view.findViewById(R.id.news_rb4); rb1.setChecked(true); rbs.add(rb1); rbs.add(rb2); rbs.add(rb3); rbs.add(rb4); initData(); vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { checkRb(index); } @Override public void onPageScrollStateChanged(int state) { } }); return view; } private void checkRb(int index) { for (int i = 0; i <rbs.size() ; i++) { if(i == index){ rbs.get(i).setChecked(true); }else{ rbs.get(i).setChecked(false); } } } private void initData() { new AsyncTask<String,Integer,String>(){ @Override protected void onPostExecute(String s) { initVp(); //adapter.notifyDataSetChanged(); initLv(); super.onPostExecute(s); } @Override protected String doInBackground(String... strings) { getVpData(); getLvData(); return null; } }.execute(); } private void initLv() { MyAdapter adapter = new MyAdapter(); lv.setAdapter(adapter); } private void getLvData() { try { URL url = new URL("http://"); // HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); int code = conn.getResponseCode(); if(code == 200){ Gson gson = new Gson(); lb = gson.fromJson(new InputStreamReader(conn.getInputStream(),"UTF-8"),LvBean.class); } } catch (Exception e) { e.printStackTrace(); } } private void initVp() { viewList = new ArrayList<ImageView>(); if(vb != null){ for (int i = 0; i <vb.getBanner().size() ; i++) { ImageView iv = new ImageView(getActivity()); iv.setScaleType(ImageView.ScaleType.FIT_XY); ImageLoader.getInstance().displayImage(vb.getBanner().get(i).getImage_url(),iv); viewList.add(iv); } } adapter = new MyPagerAdapter(); vp.setAdapter(adapter); handler.postDelayed(new Runnable() { @Override public void run() { index = vp.getCurrentItem(); index ++; vp.setCurrentItem(index); handler.postDelayed(this,2000); } },2000); } private void getVpData() { try { URL url = new URL("http://result.eolinker.com/iYXEPGn4e9c6dafce6e5cdd23287d2bb136ee7e9194d3e9?uri=banner"); // HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); int code = conn.getResponseCode(); if(code == 200){ Gson gson = new Gson(); vb = gson.fromJson(new InputStreamReader(conn.getInputStream(),"UTF-8"),VpBean.class); } } catch (Exception e) { e.printStackTrace(); } } class MyPagerAdapter extends PagerAdapter{ @Override public int getCount() { if(vb != null){ return Integer.MAX_VALUE; } return 0; } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public Object instantiateItem(ViewGroup container, int position) { index = position % vb.getBanner().size(); container.addView(viewList.get(index)); return viewList.get(index); } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } } class MyAdapter extends BaseAdapter{ @Override public int getCount() { if(lb.getData() != null){ return lb.getData().size(); } return 0; } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i, View view, ViewGroup viewGroup) { ViewHolder holder; if(view == null){ holder = new ViewHolder(); view = View.inflate(getActivity(),R.layout.lv_item,null); holder.news_lv_title = view.findViewById(R.id.news_lv_title); holder.news_lv_content = view.findViewById(R.id.news_lv_content); holder.news_lv_pic = view.findViewById(R.id.news_lv_pic); view.setTag(holder); }else{ holder = (ViewHolder) view.getTag(); } holder.news_lv_title.setText(lb.getData().get(i).getTitle()); holder.news_lv_content.setText(lb.getData().get(i).getContent()); ImageLoader.getInstance().displayImage(lb.getData().get(i).getImage_url(),holder.news_lv_pic); return view; } } class ViewHolder{ TextView news_lv_title,news_lv_content; ImageView news_lv_pic; }
ViewPager+小圆点_ListView网络请求
最新推荐文章于 2018-06-04 18:38:03 发布