setContentView(R.layout.activity_main);
footer = getLayoutInflater().inflate(R.layout.footer, null);
listView = (ListView) findViewById(R.id.listView);
listView.setOnScrollListener(new ScrollListener());
// 模拟数据
data.addAll(DataService.getData(0, 20));
adapter = new ArrayAdapter(this, R.layout.listview_item,
R.id.textView, data);
listView.addFooterView(footer);// 添加页脚(放在ListView最后)
listView.setAdapter(adapter);
listView.removeFooterView(footer);
}
private int number = 20; // 每次获取多少条数据
private int maxpage = 5; // 总共有多少页
private boolean loadfinish = true; // 指示数据是否加载完成
private final class ScrollListener implements OnScrollListener {
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
Log.i(“MainActivity”, “onScroll(firstVisibleItem=”
-
firstVisibleItem + “,visibleItemCount=”
-
visibleItemCount + “,totalItemCount=” + totalItemCount
-
“)”);
final int loadtotal = totalItemCount;
int lastItemid = listView.getLastVisiblePosition(); // 获取当前屏幕最后Item的ID
if ((lastItemid + 1) == totalItemCount) { // 达到数据的最后一条记录
if (totalItemCount > 0) {
// 当前页
int currentpage = totalItemCount % number == 0 ? totalItemCount
-
/ number
- totalItemCount / number + 1;
int nextpage = currentpage + 1; // 下一页
if (nextpage <= maxpage && loadfinish) {
loadfinish = false;
listView.addFooterView(footer);
// 开一个线程加载数据
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
List result = DataService.getData(
loadtotal, number);
// 发送消息
handler.sendMessage(handler.obtainMessage(100,
data));
}
}).start();
}
}
}
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
Log.i(“MainActivity”, “onScrollStateChanged(scrollState=”
- scrollState + “)”);
}
}
private Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
data.addAll((List) msg.obj);
// 告诉ListView数据已经发生改变,要求ListView更新界面显示
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
最后
有任何问题,欢迎广大网友一起来交流,分享高阶Android学习视频资料和面试资料包~
偷偷说一句:群里高手如云,欢迎大家加群和大佬们一起交流讨论啊!
链图片转存中…(img-zXyJWnrS-1711633150850)]
最后
有任何问题,欢迎广大网友一起来交流,分享高阶Android学习视频资料和面试资料包~
偷偷说一句:群里高手如云,欢迎大家加群和大佬们一起交流讨论啊!
[外链图片转存中…(img-EKhEFnfD-1711633150850)]