ViewPager+小圆点_ListView网络请求

4 篇文章 0 订阅
1 篇文章 0 订阅
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;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值