使用PullToRefreshScrollView+轮播图

 
private int pageIndex=10;
private int opertype=1;
private ListView listview;
private PullToRefreshScrollView psv;
private String myurl="http://api.tianapi.com/social/?key=fd364dc1b4af6c87a75045aaf1f9224a&num="+pageIndex;
private ViewPager lunbovp;
private List<ResultData.NewslistBean> datas=new ArrayList <> ();
private ListviewAdapter listviewAdapter;
private List<String> imgs=new ArrayList <> ();
private List<ImageView> lists=new ArrayList <> ();
private Handler handler=new Handler (){
    @Override
    public void handleMessage(Message msg) {
        int cindex = lunbovp.getCurrentItem ( );
        cindex++;
        lunbovp.setCurrentItem (cindex);
        setSelectimg(cindex%imgs.size ());
        sendEmptyMessageDelayed (1,1000);
    }
};
private LinearLayout linpoint;

//设置选中的小圆点
private void setSelectimg(int pageIndex) {
    for (int i = 0; i < lists.size (); i++) {
        if(i==pageIndex){
            lists.get (i).setImageResource (R.drawable.point_selected);
        }else{
            lists.get (i).setImageResource (R.drawable.point_unselected);
        }
    }
}

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View v=inflater.inflate (R.layout.ym5,container,false);
  //初始化控件
  listview = v.findViewById (R.id.listview);
    psv = v.findViewById (R.id.psv);
    lunbovp = v.findViewById (R.id.lunbovp);
    linpoint = v.findViewById (R.id.linpoint);
    return v;
}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated (savedInstanceState);
  //请求网络数据    
 data();
  //初始化 pullToRefreshScrollView
 initplv();
  //初始轮播图 
 initlunvp();

}

private void initlunvp() {
    imgs.clear ();
    imgs.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1505151721118&di=649c9a43aed72fbc4d99ec1a031510c6&imgtype=0&src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F015c7d574b9f8f6ac72525aee98351.jpg");
    imgs.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1505151956771&di=0eb6f306991d24b67a13ceb336f80102&imgtype=0&src=http%3A%2F%2Fi0.hdslb.com%2Fbfs%2Farchive%2F00613def3f1beb7a35ae136341be2b589bc46a2d.jpg_320x200.jpg");
    imgs.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1505151847685&di=c7a4b5d08ec43fa629bcb690039a7629&imgtype=0&src=http%3A%2F%2Fattimg.dospy.com%2Fimg%2Fday_080625%2F20080625_2e91a10c444877e88827vri2ZKdGMvQo.jpg");
    imgs.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1505151825129&di=70bf74b87d8a15cb91a2d79f15ed0eaf&imgtype=0&src=http%3A%2F%2Fattimg.dospy.com%2Fimg%2Fday_081016%2F20081016_fee215664d5740e56c13E2YB8giERFEX.jpg");
    imgs.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1505746504&di=930c4d677a02328a142d6fa85ed14580&imgtype=jpg&er=1&src=http%3A%2F%2Fattimg.dospy.com%2Fimg%2Fday_090113%2F20090113_6ac58b42bea94f0b318e1B6BZb5lPZl5.jpg");
    for (int i = 0; i < imgs.size ( ); i++) {
        ImageView imageView = new ImageView (getActivity ());
        if(i==0){
            imageView.setImageResource (R.drawable.point_selected);
        }else{
            imageView.setImageResource (R.drawable.point_unselected);
        }
        linpoint.addView (imageView);
        lists.add (imageView);

    }
    
    MyVpadapter myVpadapter = new MyVpadapter (imgs,getActivity ( ));
    lunbovp.setAdapter (myVpadapter);
    lunbovp.setCurrentItem (imgs.size ()*10);
    handler.sendEmptyMessageDelayed (1,1000);
}

private void data() {
    new MyTask ().execute (myurl);
}
//异步请求数据
class MyTask extends AsyncTask<String,Void,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();
        ResultData resultData = gson.fromJson (s, ResultData.class);
        List<ResultData.NewslistBean> newslist = resultData.getNewslist ( );
        if(opertype==1){
            datas.clear ();
        }
        datas.addAll (newslist);
        setadapter();
        psv.onRefreshComplete ();

    }

}
//设置适配器
private void setadapter() {
    if(listviewAdapter==null){
        listviewAdapter = new ListviewAdapter (datas,getActivity ( ));
        listview.setAdapter (listviewAdapter);
    }else{
        listviewAdapter.notifyDataSetChanged ();
    }
}
//转成string
private String streamToString(InputStream stream) {
    StringBuilder sbuilder=new StringBuilder();
    String str;
    BufferedReader reader=new BufferedReader(new InputStreamReader (stream));

    try {
        while ((str=reader.readLine())!=null){
            sbuilder.append(str);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return  sbuilder.toString();

}

private void initplv() {
    psv.setMode (PullToRefreshBase.Mode.BOTH);
    psv.setOnRefreshListener (new PullToRefreshBase.OnRefreshListener2 <ScrollView> ( ) {
        @Override
        public void onPullDownToRefresh(PullToRefreshBase <ScrollView> pullToRefreshBase) {
            pageIndex=10;
            opertype=1;
            myurl="http://api.tianapi.com/social/?key=fd364dc1b4af6c87a75045aaf1f9224a&num="+pageIndex;
            handler.removeMessages (0);

            data ();
        }

        @Override
        public void onPullUpToRefresh(PullToRefreshBase <ScrollView> pullToRefreshBase) {
            pageIndex++;
            opertype=2;
            myurl="http://api.tianapi.com/social/?key=fd364dc1b4af6c87a75045aaf1f9224a&num="+pageIndex;
            handler.removeMessages (0);

            data ();
        }
    });
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值