listview 的分页加载
来源:互联网 发布:类似淘宝千里眼的插件 编辑:程序博客网 时间:2024/05/30 22:42
listview的用法都不用说了吧,listview的适配器及优化。
1.首先创建一个类继承listview.并实现他的构造方法。三个都要实现 。
2.然后创建一个方法,并在方法中加载视图,然后把视图加载到listview的底部,用于加载所需要的数据。
3.三个构造方法都要都要调用这个方法。
4.实现listview的滑动事件。、
5,创建接口,创建抽象方法。
下面是主要代码;
<pre name="code" class="java"><span style="font-family:SimSun;font-size:14px;">package com.example.ezamhuanxin;import android.content.Context;import android.util.AttributeSet;import android.view.LayoutInflater;import android.view.View;import android.widget.AbsListView;import android.widget.ListView;/** * Created by 孙贝贝 on 2016/9/26. */public class Food extends ListView implements OnScrollListener { // 第一个条目的索引 private int lfirstVisibleItem; // 最后的条目的索引 private int lastVisibleItem; // 总的条目数 private int ltotalItemCount; private boolean isloading = true; private InterfactDate interfactDate; private View view; public Food(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); initview(); } public Food(Context context, AttributeSet attrs) { super(context, attrs);// TODO Auto-generated constructor stub initview(); } public Food(Context context) { super(context);// TODO Auto-generated constructor stub initview(); } private void initview() { this.setOnScrollListener(this); view = LayoutInflater.from(getContext()).inflate(R.layout.foot, null, false); this.addFooterView(view); view.setVisibility(View.INVISIBLE); } // visibleItemCount显示的条目数//滚动完成后的一个状态 ,通过这个方法能拿到当前的一些值和状态/*firstVisibleItem:第一个显示的条目 12 * visibleItemCount:显示的条目个数 8* totalItemCount:总共的条目数: 20* * 所以说当firstVisibleItem+visibleItemCoun=totalItemCount这个时候 就说明滑动到底了,该加载数据了*/ @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {// TODO Auto-generated method stub lfirstVisibleItem = firstVisibleItem; lastVisibleItem = visibleItemCount + firstVisibleItem; ltotalItemCount = totalItemCount; }//这个方法是当滚动状态变化的时候触发/** scrollState就是当前的状态*/ @Override public void onScrollStateChanged(final AbsListView view, int scrollState) {// 当滑动的状态停顿的时候 if (scrollState == SCROLL_STATE_IDLE) {// 当最后一个的条目的数和总的条目数相同的时候 if (lastVisibleItem == ltotalItemCount) { System.out.println("已经到最后了"); if (isloading) { isloading = false; view.setVisibility(View.VISIBLE); Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { interfactDate.setData(); isloading = true; view.setVisibility(View.INVISIBLE); } }, 2000); } } } } public interface InterfactDate { void setData(); } public void setInterface(InterfactDate date) { interfactDate = date; }}</span>
下面是在Mainactivity中的加载;
private void loadMore(){ for(int a=0;a<6;a++){ list.add("大家好"+a); } adapter.notifyDataSetChanged(); }private void initview(){ food=(Food)findViewById(R.id.listview); food.setInterface(new InterfactDate(){@Overridepublic void setData(){ loadMore(); } }); }<span style="color:#6633ff;"></span>
2 0
- ListView的分页加载
- ListView的分页加载
- ListView的分页加载
- listview 的分页加载
- listview的分页加载
- ListView的分页加载
- ListView的分页加载
- android listview的分页加载
- ListView的分页加载问题
- ListView的分批加载和分页加载
- android 实现listview的分页加载
- 实现ListView的分页加载功能
- android 实现listview的分页加载
- Listview分页加载数据的实现
- listview的分页加载-可直接运行
- Android 简单的listview分页加载
- ListView分页加载
- listview分页加载
- Oracle数据库相关
- sed配合正则表达式应用案例
- linux磁盘空间不足:Can't start server: can't create PID file: No space left on device
- 有未完成的yum事物提示报错
- 文本伸缩的实现
- listview 的分页加载
- 郑大第九届校赛-热身赛-zzulioj-1809-make pair
- 八.删除文件
- Python实现二叉树及其4种遍历
- libevent学习之helloworld
- HUST1010-The Minimum Length
- Activity——showDialog()、onPrepareDialog()和onCreateDialog()的关系
- Eclipse启动tomcat错误
- 第二十六条:优先考虑泛型