博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第20天PullToRefreshListView
阅读量:3785 次
发布时间:2019-05-22

本文共 3946 字,大约阅读时间需要 13 分钟。

第20天PullToRefreshListView

PullToRefreshListView

一.PullToRefreshListView介绍

实现下拉刷新, 上拉加载的功能

二.PullToRefreshListView步骤

步骤1:导入第三方moudle:library

首先,点击new按钮 -> import Module
在这里插入图片描述

如果没有导入成功,在settings.gradle文件夹下面添加

在这里插入图片描述

步骤2:新建moudle绑定上面导入的moudle

在这里插入图片描述
在这里插入图片描述

自此,library已经导入成功,可以新建一个pullToRefrenshListView验证一下。

步骤3:xml布局

步骤4:Java代码

public class MainActivity extends AppCompatActivity {
private String path ="http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page="; private int page = 1; private PullToRefreshListView mPrv;//控件 private List
data = new ArrayList<>();//数据源 private MyAdapter adapter;//适配器 @Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mPrv = (PullToRefreshListView) findViewById(R.id.prv_id); adapter = new MyAdapter(this,data); mPrv.setAdapter(adapter); //TODO 开启线程, 加载网络数据 new MyTask().execute(); //TODO 1, 为PullToRefreshListView 设置模式 //PullToRefreshBase.Mode.BOTH 上拉加载, 下拉刷新 //PullToRefreshBase.Mode.PULL_FROM_END 上拉加载 //PullToRefreshBase.Mode.PULL_FROM_START 下拉刷新 mPrv.setMode(PullToRefreshBase.Mode.BOTH); //TODO 2, 为PullToRefreshListView 设置监听器 mPrv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2
() {
@Override public void onPullDownToRefresh(PullToRefreshBase
refreshView) {
//TODO 下拉刷新 --- 重新加载第一页数据 page = 1; //清空数据源 data.clear(); //开启异步任务, 加载第一页数据 new MyTask().execute(); } @Override public void onPullUpToRefresh(PullToRefreshBase
refreshView) {
//TODO 上拉加载 page++;//加载下一页 //开启异步任务, 加载下一页数据 new MyTask().execute(); } }); } //TODO 自定义一个线程 class MyTask extends AsyncTask
{
@Override protected String doInBackground(String... strings) {
return HttpUtils.getStringResult(path+page); } @Override protected void onPostExecute(String s) {
super.onPostExecute(s); //TODO 3, 设置PullToRefreshListView 加载完成 mPrv.onRefreshComplete(); //解析数据 Qubaobei qubaobei = new Gson().fromJson(s,Qubaobei.class); if(qubaobei!=null && qubaobei.getData()!=null && qubaobei.getData().size()>0) {
data.addAll(qubaobei.getData());//将获取的数据, 添加到数据源中 //TODO 刷新适配器 adapter.notifyDataSetChanged(); } } }}

步骤4:HttpUtils工具类代码

public class HttpUtils {
/** * 根据地址, 获取网络数据 * @param path 路径 * @return String 数据 */ public static String getStringResult(String path) {
HttpURLConnection connection = null; try {
URL url = new URL(path); connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.connect(); if(connection.getResponseCode() == 200) {
InputStream is = connection.getInputStream(); byte[] buffer = new byte[1024]; int len = 0; StringBuilder sBuilder = new StringBuilder(); while ((len = is.read(buffer))!=-1) {
sBuilder.append(new String(buffer,0,len)); } return sBuilder.toString(); } }catch (Exception e) {
e.printStackTrace(); } finally {
if(connection!=null) {
connection.disconnect(); } } return null; }}

library第三方moudle下载地址:

源码下载地址:

转载地址:http://jwktn.baihongyu.com/

你可能感兴趣的文章
算法训练 1的个数(输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。)
查看>>
算法训练 素因子去重(给定一个正整数n,求一个正整数p,满足p仅包含n的所有素因子,且每个素因子的次数不大于1)
查看>>
算法训练 二进制数数( 给定L,R。统计[L,R]区间内的所有数在二进制下包含的“1”的个数之和。   如5的二进制为101,包含2个“1”。)
查看>>
第十届MathorCup高校数学建模D题解题思路
查看>>
2020年高教社杯全国大学生数学建模竞赛赛题 C题分析与思路!(持续更新)
查看>>
2020年高教社杯全国大学生数学建模竞赛赛题 B题分析与思路!(持续更新)
查看>>
蓝桥杯真题 18省4-测试次数 x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。 各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐
查看>>
蓝桥杯真题 19省3-数列求值 给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求第 20190324 项的最后 4 位数字。
查看>>
大小写字母转换函数tolower();的用法
查看>>
蓝桥杯 15校4-7对数字 今有7对数字:两个1,两个2,两个3,...两个7,把它们排成一行。 要求,两个1间有1个其它数字,两个2间有2个其它数字,以此类推,两个7之间有7个其它数字。如下就是
查看>>
蓝桥杯真题 17省10-k倍区间 给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, Ai+1, ... Aj(i <= j)之和是K的倍数,我们就称这个区间[i
查看>>
TCP协议的流量控制
查看>>
TCP连接的三次握手过程,为什么不是两次或四次?
查看>>
小白都能看懂的DNS解析过程
查看>>
HTTP和HTTPS的区别?描述HTTPS的工作过程
查看>>
简述一下HTTP的状态码
查看>>
20210227vulhub靶场之环境配置---无法获得靶机IP的疑难解决方式(可以解决VBox和VMware不兼容问题)
查看>>
20210226web渗透学习之SSRF总结
查看>>
2021-06-01web渗透学习之sqlserver提权(转)
查看>>
大数据之Flume
查看>>