轮播图加上下拉刷新

public class MainActivity2 extends AppCompatActivity {

    private ViewPager viewPager;
    private ListView listView;
    private LinearLayout linearLayout;
    private int page=1;
    private int oper=1;
    private  List<Lei.NewslistBean> datas=new ArrayList<>();
    //af3b2b7acbfd7c08a4c60dbe16674c0b
    private List<String> imageurl=new ArrayList<>();
    private List<ImageView> lists=new ArrayList<>();
    private String myurl="http://api.tianapi.com/travel/?key=af3b2b7acbfd7c08a4c60dbe16674c0b&num="+page+"0";
    private PullToRefreshScrollView slv;
    private com.example.lianxi.setAdapter adapter;
    private Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);

            int currentItem = viewPager.getCurrentItem();
            currentItem++;
            viewPager.setCurrentItem(currentItem);
            seleYuan(currentItem%imageurl.size());
            sendEmptyMessageDelayed(1,3000);
        }
    };


    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main2);
        viewPager = findViewById(R.id.viewpager);
        listView = findViewById(R.id.listview);
        linearLayout = findViewById(R.id.linearLayout1321);
        slv = findViewById(R.id.scroView);
        //初始化
        initData();
        ReData();

    }

    private void ReImage(List<Lei.NewslistBean> jj) {
        imageurl.clear();
        imageurl.add(jj.get(0).getPicUrl());
        imageurl.add(jj.get(1).getPicUrl());
        imageurl.add(jj.get(2).getPicUrl());
        ImageAdapter imageAdapter = new ImageAdapter(imageurl, MainActivity2.this);
        viewPager.setAdapter(imageAdapter);
        initreder();
        handler.sendEmptyMessageDelayed(1,3000);
    }
    private void initreder() {
        lists.clear();
        linearLayout.removeAllViews();
        for (int i = 0; i <imageurl.size() ; i++) {
             
            ImageView imageView = new ImageView(this);
            if(i==0){
                imageView.setImageResource(R.mipmap.point_selected);
            }else{
                imageView.setImageResource(R.mipmap.point_mormal);
            }
            linearLayout.addView(imageView);
            lists.add(imageView);
        }
    }
    private void seleYuan(int posint) {
        for (int i = 0; i <lists.size(); i++) {
            if(i==posint){
                lists.get(i).setImageResource(R.mipmap.point_selected);
            }else{
                lists.get(i).setImageResource(R.mipmap.point_mormal);
            }
        }
    }
    private void ReData() {
        new MyText().execute(myurl);
    }
    private class MyText extends AsyncTask<String,Integer,String>{
        @Override
        protected String doInBackground(String... strings) {
            try {
                URL url = new URL(strings[0]);
                HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
                urlConnection.setRequestMethod("GET");
                urlConnection.setReadTimeout(5000);
                urlConnection.setConnectTimeout(5000);

                if (urlConnection.getResponseCode()==200){
                    InputStream inputStream = urlConnection.getInputStream();
                    String s=StreamTostring(inputStream);
                    return s;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            Gson gson = new Gson();
            Lei lei = gson.fromJson(s, Lei.class);
            List<Lei.NewslistBean> newslist = lei.getNewslist();
            ReImage(newslist);
            if(oper==1){
                datas.clear();
            }
            datas.addAll(newslist);
            MyAdapter();
            slv.onRefreshComplete();
        }
    }

    private void MyAdapter() {
        if (adapter==null){
            adapter = new setAdapter(datas, MainActivity2.this);
            listView.setAdapter(adapter);
        }else{
            adapter.notifyDataSetChanged();
        }
    }

    private String StreamTostring(InputStream inputStream) {
        StringBuilder stringBuilder=new StringBuilder();
        String ste;
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
        try {
            while ((ste=reader.readLine())!=null){
                stringBuilder.append(ste);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return stringBuilder.toString();
    }

    private void initData() {
        slv.setMode(PullToRefreshBase.Mode.BOTH);
       slv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() {
           @Override
           public void onPullDownToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) {
               page=1;
               oper=1;
               myurl="http://api.tianapi.com/world/?key=af3b2b7acbfd7c08a4c60dbe16674c0b&num="+page+"0";
               ReData();
               handler.removeCallbacksAndMessages(null);
           }

           @Override
           public void onPullUpToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) {

               oper=2;
               page++;
               myurl="http://api.tianapi.com/world/?key=af3b2b7acbfd7c08a4c60dbe16674c0b&num="+page+"0";
               ReData();
                handler.removeCallbacksAndMessages(null);
           }
       });
    }


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值