Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Android ListView分页显示

为了能更直接的对应主题,下面代码不完整,所以请不要直接复制粘贴到IDE中,重点代码加粗显示,代码中有注释.public class MyActivity extends Activity implements OnScrollListener {// 参数/** 数据源 */private List<Joke> data;
/** 初始显示的页数 */private int pageNum = 1;/** 每一次显示多少个 */private static final int pageCount = 20;
/** MyAdapter引用 */private MyAdapter adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 隐藏标题requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.listing);}/** * 自定义ListView的Adapter类 *  * @author Lion *  */class MyAdapter extends BaseAdapter {// 数据源private List<Joke> data;public MyAdapter(List<Joke> data) {super();this.data = data;}@Overridepublic int getCount() {// 返回该显示的数据个数// pageCount 一页显示多少个// pageNum 第几页return pageCount * pageNum;}@Overridepublic Object getItem(int position) {return data != null ? data.get(position) : null;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {return convertView;}}/** * OnScrollListener接口实现方法 */@Overridepublic void onScrollStateChanged(AbsListView view, int scrollState) {// 当不滚动时if (scrollState == SCROLL_STATE_IDLE) {// 判断到底部滚动if (view.getLastVisiblePosition() == (view.getCount() - 1)) {if (data.size() - pageNum * pageCount <= pageCount) {// 这种情况就是末尾了,也就是集合(数据源)里面没有数据了Toast.makeText(getApplicationContext(), "已至末尾...",Toast.LENGTH_SHORT).show();} else {// ??示页数+1pageNum++;// 刷新ListViewadapter.notifyDataSetChanged();}}}}
/** * OnScrollListener接口实现方法 */@Overridepublic void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount) {}}