pulltorefresh上拉刷新,下拉加载
2018-01-16 15:56
323 查看
//布局页面
<
4000
pre style="background-color:#ffffff;color:#000000;font-family:'宋体';font-size:12.8pt;"><com.handmark.pulltorefresh.library.PullToRefreshListView
android:id="@+id/pull"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</com.handmark.pulltorefresh.library.PullToRefreshListView>
//主页面
package zhanghaijiao.bawei.com.pulltorefresh_demo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ListView;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.ILoadingLayout;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private PullToRefreshListView pullToRefreshListView;
private int pageIndex=1;
private String url="https://api.tianapi.com/wxnew/?key=48a7d7193e11bd2dd4a683b6e2f90a4f&num=10&page="+pageIndex;
private MyAdapter adapter;
private List<Result.NewslistEntity> newslist=new ArrayList<>();
private int operType=1;//1:刷新 2:加载更多
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pullToRefreshListView = findViewById(R.id.plv);
initPlv();
//请求网络数据
requestNetData();
}
/**
* 请求网络数据
*/
private void requestNetData() {
if(NetStateUtil.isConn(this)){
MyTask myTask=new MyTask(new MyTask.Icallbacks() {
@Override
public void updateUiByjson(String jsonstr) {
Gson gson=new Gson();
Result result = gson.fromJson(jsonstr, Result.class);
if(operType==1){
newslist.clear();
}
//添加新的集合数据
newslist.addAll(result.getNewslist());
//设置适配器
setLvAdapter();
//关闭头尾视图
pullToRefreshListView.onRefreshComplete();
}
});
myTask.execute(url);
}else{
NetStateUtil.showNoNetWorkDlg(this);
}
}
public void setLvAdapter(){
if(adapter==null){
adapter=new MyAdapter(this,newslist);
pullToRefreshListView.setAdapter(adapter);
}else {
adapter.notifyDataSetChanged();
}
}
private void initPlv() {
//1.设置模式
pullToRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);
//2.设置头尾布局显示的文字
ILoadingLayout startLabels = pullToRefreshListView.getLoadingLayoutProxy(true, false);
startLabels.setPullLabel("下拉刷新");//第一次下拉时显示的文字
startLabels.setRefreshingLabel("正在拉");//下拉的过程中显示的文字
startLabels.setReleaseLabel("放开刷新");//不能在下拉时,显示的文字
ILoadingLayout endLabels = pullToRefreshListView.getLoadingLayoutProxy(false, true);
endLabels.setPullLabel("上拉刷新");
endLabels.setRefreshingLabel("正在载入...");
endLabels.setReleaseLabel("放开刷新...");
//3.设置监听事件
pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
//下拉刷新
operType=1;
pageIndex=1;
url="https://api.tianapi.com/wxnew/?key=48a7d7193e11bd2dd4a683b6e2f90a4f&num=10&page="+pageIndex;
requestNetData();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
//上拉加载
operType=2;
pageIndex++;
url="https://api.tianapi.com/wxnew/?key=48a7d7193e11bd2dd4a683b6e2f90a4f&num=10&page="+pageIndex;
requestNetData();
}
});
}
}
<
4000
pre style="background-color:#ffffff;color:#000000;font-family:'宋体';font-size:12.8pt;"><com.handmark.pulltorefresh.library.PullToRefreshListView
android:id="@+id/pull"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</com.handmark.pulltorefresh.library.PullToRefreshListView>
lw.setMode(PullToRefreshBase.Mode.BOTH); lw.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { i=1; j=1; url="http://api.expoon.com/AppNews/getNewsList/type/1/p/"+i; read(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { i++; j=2; url="http://api.expoon.com/AppNews/getNewsList/type/1/p/"+i; read(); } });
private void read(){ MyTask myTask=new MyTask(new MyTask.Icallback() { @Override public void updateUiByjson(String string) { Gson gson=new Gson(); Bean bean = gson.fromJson(string, Bean.class); if(j==1){ data.clear(); } //添加新的集合数据 data.addAll(bean.getData()); //设置适配器 setLvAdapter(); //关闭头尾视图 lw.onRefreshComplete(); } }); myTask.execute(url); } public void setLvAdapter(){ if(adapter==null){ adapter = new MyAdapter(); lw.setAdapter(adapter); }else { adapter.notifyDataSetChanged(); } }
//主页面
package zhanghaijiao.bawei.com.pulltorefresh_demo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ListView;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.ILoadingLayout;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private PullToRefreshListView pullToRefreshListView;
private int pageIndex=1;
private String url="https://api.tianapi.com/wxnew/?key=48a7d7193e11bd2dd4a683b6e2f90a4f&num=10&page="+pageIndex;
private MyAdapter adapter;
private List<Result.NewslistEntity> newslist=new ArrayList<>();
private int operType=1;//1:刷新 2:加载更多
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pullToRefreshListView = findViewById(R.id.plv);
initPlv();
//请求网络数据
requestNetData();
}
/**
* 请求网络数据
*/
private void requestNetData() {
if(NetStateUtil.isConn(this)){
MyTask myTask=new MyTask(new MyTask.Icallbacks() {
@Override
public void updateUiByjson(String jsonstr) {
Gson gson=new Gson();
Result result = gson.fromJson(jsonstr, Result.class);
if(operType==1){
newslist.clear();
}
//添加新的集合数据
newslist.addAll(result.getNewslist());
//设置适配器
setLvAdapter();
//关闭头尾视图
pullToRefreshListView.onRefreshComplete();
}
});
myTask.execute(url);
}else{
NetStateUtil.showNoNetWorkDlg(this);
}
}
public void setLvAdapter(){
if(adapter==null){
adapter=new MyAdapter(this,newslist);
pullToRefreshListView.setAdapter(adapter);
}else {
adapter.notifyDataSetChanged();
}
}
private void initPlv() {
//1.设置模式
pullToRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);
//2.设置头尾布局显示的文字
ILoadingLayout startLabels = pullToRefreshListView.getLoadingLayoutProxy(true, false);
startLabels.setPullLabel("下拉刷新");//第一次下拉时显示的文字
startLabels.setRefreshingLabel("正在拉");//下拉的过程中显示的文字
startLabels.setReleaseLabel("放开刷新");//不能在下拉时,显示的文字
ILoadingLayout endLabels = pullToRefreshListView.getLoadingLayoutProxy(false, true);
endLabels.setPullLabel("上拉刷新");
endLabels.setRefreshingLabel("正在载入...");
endLabels.setReleaseLabel("放开刷新...");
//3.设置监听事件
pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
//下拉刷新
operType=1;
pageIndex=1;
url="https://api.tianapi.com/wxnew/?key=48a7d7193e11bd2dd4a683b6e2f90a4f&num=10&page="+pageIndex;
requestNetData();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
//上拉加载
operType=2;
pageIndex++;
url="https://api.tianapi.com/wxnew/?key=48a7d7193e11bd2dd4a683b6e2f90a4f&num=10&page="+pageIndex;
requestNetData();
}
});
}
}
相关文章推荐
- 使用pullToRefresh进行下拉刷新和上拉加载
- PullToRefreshListView刷新下拉加载最简单用法
- PullToRefresh的实现上拉刷新下拉加载
- PullToRefresh 上拉刷新,下拉加载网络数据 ListView
- PullToRefresh上拉刷新下拉加载
- TabLayout横向滑动,DrawerLayout侧滑,PullToRefreshListView上拉刷新下拉加载联用
- PullToRefreshRecyclerView——带上拉刷新下拉加载功能的RecyclerView
- PullreFreshLibrary(PullToRefreshListView)上拉刷新,下拉加载(—)
- 上拉刷新 下拉加载更多-PullToRefreshListView的简介
- 使用Android开源工具PullToRefresh实现上啦刷新下拉加载
- 针对自定义组件上拉刷新下拉加载更多PullToRefreshView的分析(一)
- 使用pullToRefresh进行下拉刷新和上拉加载
- PullToRefresh上拉刷新下拉加载
- PullToRefresh的实现上拉刷新下拉加载
- 使用pullToRefresh进行下拉刷新和上拉加载
- android使用PullToRefresh实现上拉加载和下拉刷新效果
- listView利用BaseAdapter及异步任务Gson解析,使用Picasso网络获取资源进行图文混排,PullToRefresh上拉刷新下拉加载
- android使用PullToRefresh实现上拉加载和下拉刷新效果
- PullToRefresh的实现上拉刷新下拉加载
- 针对自定义组件上拉刷新下拉加载更多PullToRefreshView的分析(二)