Fragment01---无线轮播+获取listview数据+上下拉刷新

package com.example.com.moni3lx;

import android.graphics.Bitmap;
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.app.FragmentPagerAdapter;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.ScrollView;

import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshScrollView;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by linmeihui on 2018/1/13.
 */

public class Fragment01 extends Fragment{

    private PullToRefreshScrollView psv;
    private ViewPager vp;
    private DisplayImageOptions options;
    private int item;
    private Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            vp.setCurrentItem(item);
            item ++;
            handler.sendEmptyMessageDelayed(0,1000);
        }
    };
    private ListView lv;
    private String path = "http://120.27.23.105/product/searchProducts?keywords=%E7%AC%94%E8%AE%B0%E6%9C%AC&source=android&page=1";
    private int pageIndex;
    private int opType;
    private List<ResultData.DataBean> list = new ArrayList<>();


    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        View v=inflater.inflate(R.layout.fragment01,container,false);

        psv = v.findViewById(R.id.psv);
        vp = v.findViewById(R.id.vp);
        lv = v.findViewById(R.id.lv);

        final List<String> picUrl=new ArrayList<>();
        picUrl.add("https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=1587152606,957874993&fm=27&gp=0.jpg");
        picUrl.add("https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=662228504,3911440066&fm=27&gp=0.jpg");
        picUrl.add("https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=1242345275,2416287796&fm=27&gp=0.jpg");




        options = new DisplayImageOptions.Builder()
                .cacheInMemory(true)//使用内存缓存
                .cacheOnDisk(true)//使用磁盘缓存
                .showImageOnLoading(R.mipmap.ic_launcher)//设置正在下载的图片
                .showImageForEmptyUri(R.mipmap.ic_launcher)//url为空或请求的资源不存在时
                .showImageOnFail(R.mipmap.ic_launcher)//下载失败时显示的图片
                .bitmapConfig(Bitmap.Config.RGB_565)//设置图片色彩模式 1px=2字节
                .imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式
                .build();

        vp.setCurrentItem(picUrl.size()*1000);
        item = vp.getCurrentItem();


        RequestData();


        vp.setAdapter(new PagerAdapter() {
            @Override
            public int getCount() {
                return Integer.MAX_VALUE;
            }

            @Override
            public boolean isViewFromObject(View view, Object object) {
                return view==object;
            }

            @Override
            public Object instantiateItem(ViewGroup container, int position) {
                ImageView img=new ImageView(getActivity());
                container.addView(img);
                ImageLoader.getInstance().displayImage(picUrl.get(position%picUrl.size()),img,options);
                return img;
            }

            @Override
            public void destroyItem(ViewGroup container, int position, Object object) {
                container.removeView((View) object);

            }


        });


        handler.sendEmptyMessageDelayed(0,1000);


        initPsv();

        return v;
    }


    public  void RequestData(){
        MyTask myTask = new MyTask(new MyTask.ICallBack() {
            @Override
            public void Json(String str) {

                Gson gson = new Gson();
                ResultData resultData = gson.fromJson(str, ResultData.class);
                if(opType == 1){
                    list.clear();
                }
                list.addAll(resultData.getData());
                MyAdapter myAdapter = new MyAdapter(list, getActivity());
                lv.setAdapter(myAdapter);

                psv.onRefreshComplete();
            }
        });

        myTask.execute(path);
    }


    private void initPsv() {

        psv.setMode(PullToRefreshBase.Mode.BOTH);

        psv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) {
                pageIndex = 1;
                opType = 1;
                path = "http://120.27.23.105/product/searchProducts?keywords=%E7%AC%94%E8%AE%B0%E6%9C%AC&source=android&page="+pageIndex;
                RequestData();

            }

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

                pageIndex ++;
                opType = 2;
                path = "http://120.27.23.105/product/searchProducts?keywords=%E7%AC%94%E8%AE%B0%E6%9C%AC&source=android&page="+pageIndex;
                RequestData();

            }
        });

    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值