Android-----XlistView上拉刷新下拉加载更多
来源:互联网 发布:第六季网络复活赛 编辑:程序博客网 时间:2024/06/06 01:05
1.想要实现xlistview上拉刷新下拉加载更多必须导入xlistview文件,在file-new-ImportModule-选择路径导入-导入完成之后会出现版本不一致,这时候把导入进来的包的版本号改为当前studio的版本号同步下就可以了。(把导入包的版本号改为当前studio的版本号同步下就可以了。)
封装包地址:https://github.com/lzs4510/ViewPagerAndFragmentDemo2
2.需要同步xlistview 否则不能引用里面的方法,具体为点击file-projectstructure-app-Dependencies-右上角加号-3 Moduledependency-选择xlistview-点击OK就可以了。
思路:
在MainActivity中实现IXListViewListener需要重写两个方法即onRefresh();和onLoadMore();还要手动写一个停止刷新的方法stop();
在onRefresh()中写入页数,通常为第一页,然后list清空集合,最后是调用加载数据的方法。
在onLoadMore()中页数++,并调用加载数据的方法。
在stop()中通过Xlistview调用stopRefresh(); stopLoadMore(); setRefreshTime();三个方法 因为在刷新和加载更多的方法中都调用了stop();
最后在Handler中适配器刷新完在调用停止的方法stop();
MainActivity中:public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener{ private XListView mxv; private Myadapter md; //定义接口的页数 private int page=1; private ArrayList<News.DataBean.ArticleListBean> mlist=new ArrayList<>(); private String url="http://zkread.com/htnewsroom/v2.0/mobileapp/user-0/categories/articles?itemType=recommendation&size=20&firstId=1339380&itemName=%25E6%258E%25A8%25E8%258D%2590&itemId=-1&page="; private Handler hand=new Handler(){ @Override public void handleMessage(Message msg) { //当msg传值为1时,解析字符串并添加到集合,刷新数据 if (msg.what==1){ Gson gson=new Gson(); News news = gson.fromJson(msg.obj.toString(), News.class); mlist.addAll(news.getData().getArticleList()); md.notifyDataSetChanged(); stop(); } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mxv=(XListView)findViewById(R.id.xlist_view); //重置数据 initdata(); } private void initdata() { //xlistview加载更多设置为true mxv.setPullLoadEnable(true); mxv.setXListViewListener(this); //重置适配器 md=new Myadapter(this,mlist); mxv.setAdapter(md); } //加载数据的方法在一个新的线程中 private void loaddata() { new Thread(){ @Override public void run() { String str = HttpUrl.getUrlConnect(url+page); Message msg=new Message(); msg.obj=str; msg.what=1; hand.sendMessage(msg); } }.start(); } //实现IXListViewListener需要重写的两个方法 @Override public void onRefresh() { //第一次 page=1; mlist.clear(); loaddata(); } @Override public void onLoadMore() { page++; loaddata(); } //手动写的停止刷新的方法 private void stop() { mxv.stopRefresh(); mxv.stopLoadMore(); mxv.setRefreshTime("刚刚"); }}
阅读全文
0 0
- xlistView下拉刷新,上拉加载更多
- Android-----XlistView上拉刷新下拉加载更多
- Android XListView下拉刷新和上拉加载更多
- xListView下拉刷新和上拉加载更多
- XlistView下拉刷新,上拉加载更多改良
- XListView下拉刷新和上拉加载更多详解
- XListView 下拉刷新 上拉分页加载更多
- 【Android归纳】基于XListView的下拉刷新、上拉加载更多的控件分析
- android 上拉刷新,下拉加载更多
- Android——Xlistview上拉刷新下拉加载
- XlistView上拉刷新下拉加载
- xListView上拉刷新下拉加载
- xListView上拉加载下拉刷新
- XListView上拉加载,下拉刷新
- xlistview上拉加载下拉刷新
- XListView上拉加载下拉刷新
- XListView上拉刷新,下拉加载
- 上拉刷新--下拉加载XListView
- 安卓 7.0 查看 sd卡图片失败 raw image not detected
- windows C/C++ 在一个程序中打开,关闭和监视其它的exe程序
- mysql innodb update 锁表
- 拉格朗日问题求解QP问题
- Centos7安装jdk-6u45
- Android-----XlistView上拉刷新下拉加载更多
- js动态生成的元素绑定事件
- 【Python】五、Matplotlib——《用Python做科学计算》
- SpringMVC配置文件详解
- niginx基础
- Cannot find one or more components. Please reinstall the application. SSMS 17.1 启动失败
- 【笔记】使用C语言编写win32平台Shellcode
- 字符编码问题
- 搭建nagios监控平台