PullToReFreshActivity

public class PullToRefreshActivity extends AppCompatActivity implements NetUtils_V2.NetCallback {

    private PullToRefreshListView pullToRefreshListView;
    private NetUtils_V2 instance;
    private String url = "https://gank.io/api/data/福利/10/";
    private int page = 1;
    private List<GankBean.ResultsBean> resultsBeanList;
    private PullToRefreshAdaper adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_pull_to_refresh);

        pullToRefreshListView = findViewById(R.id.pull_to_refresh);

        // 设置PullToRrefresh支持上拉下拉
        pullToRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);
        // 设置下拉下拉的监听
        pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                page = 1;
                loadData();
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
                page++;
                loadData();
            }
        });
        /*pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<GridView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<GridView> refreshView) {
                page = 1;
                loadData();
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<GridView> refreshView) {
                page++;
                loadData();
            }
        });*/

        // 设置一个空的adpater , 去请求网络数据, 当网络数据回来后添加到数据集合中, 刷新adapter
        resultsBeanList = new ArrayList<>();
        adapter = new PullToRefreshAdaper(this, resultsBeanList);
        pullToRefreshListView.setAdapter(adapter);

        // 请求数据并在List中展示
        instance = NetUtils_V2.getInstance();
        instance.setNetCallback(this);
        loadData();

        // 添加轮播
        View headView = LayoutInflater.from(this).inflate(R.layout.banner_layout, null, false);
        banner = headView.findViewById(R.id.pull_banner);
        banner.setImageLoader(new ImageLoader() {
            @Override
            public void displayImage(Context context, Object path, ImageView imageView) {
                com.nostra13.universalimageloader.core.ImageLoader.getInstance().displayImage((String) path, imageView);
            }
        });
        List<String> images = new ArrayList<>();
        images.add("https://ww1.sinaimg.cn/large/0065oQSqly1fu7xueh1gbj30hs0uwtgb.jpg");
        images.add("https://ww1.sinaimg.cn/large/0065oQSqgy1fu39hosiwoj30j60qyq96.jpg");
        images.add("https://ww1.sinaimg.cn/large/0065oQSqly1ftzsj15hgvj30sg15hkbw.jpg");
        images.add("https://ww1.sinaimg.cn/large/0065oQSqgy1ftwcw4f4a5j30sg10j1g9.jpg");
        banner.setImages(images);
        banner.setBannerAnimation(Transformer.RotateDown);
        banner.start();

        // GridView refreshableView = pullToRefreshListView.getRefreshableView();
        ListView refreshableView = pullToRefreshListView.getRefreshableView();
        // 设置HeadView的布局参数
        AbsListView.LayoutParams params = new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, 600);
        headView.setLayoutParams(params);
        // 添加HeadView
        refreshableView.addHeaderView(headView);
    }

    private Banner banner;

    /**
     * 加载数据
     */
    private void loadData() {
        instance.getDataFromServer(url + page);
    }

    @Override
    public void onSuccess(String result) {
        // 解析并处理数据
        Gson gson = new Gson();

        GankBean gankBean = gson.fromJson(result, GankBean.class);

        // 设置数据并展示
        if (page == 1) {
            resultsBeanList.clear();
        }

        resultsBeanList.addAll(gankBean.getResults());
        adapter.notifyDataSetChanged();

        pullToRefreshListView.onRefreshComplete();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值