Android(安卓)ListView分页显示
16lz
2021-01-25
为了能更直接的对应主题,下面代码不完整,所以请不要直接复制粘贴到IDE中,重点代码加粗显示,代码中有注释.
public class MyActivity extends Activity implements OnScrollListener {// 参数/** 数据源 */private List 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 data;public MyAdapter(List 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) {}}
转载地址:http://blog.csdn.net/jdsjlzx/article/details/8298140
更多相关文章
- 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
- android studio 查看sha1(Mac windows下的问题都可以通过此解决)
- android: 如何开启webview的LBS功能
- DatePickerDialog 自定义样式及使用全解
- android UI 的去标题栏和去状态栏(全屏)
- Android(安卓)新的锁屏接口的实现
- Android(安卓)Studio与eclipse常用快捷键对比
- Android(安卓)MVP 使用教程
- 初学Android,短信管理器之发送短信(六十五)