惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

aimingoo的专栏
aimingoo的专栏
V
V2EX
G
Google Developers Blog
F
Full Disclosure
Martin Fowler
Martin Fowler
宝玉的分享
宝玉的分享
H
Hacker News: Front Page
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
NISL@THU
NISL@THU
G
GRAHAM CLULEY
V
Vulnerabilities – Threatpost
Hacker News - Newest:
Hacker News - Newest: "LLM"
A
About on SuperTechFans
The Cloudflare Blog
C
Cisco Blogs
D
DataBreaches.Net
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Vercel News
Vercel News
P
Privacy International News Feed
Microsoft Security Blog
Microsoft Security Blog
Help Net Security
Help Net Security
Recorded Future
Recorded Future
PCI Perspectives
PCI Perspectives
S
Schneier on Security
AI
AI
N
News | PayPal Newsroom
雷峰网
雷峰网
C
Cyber Attacks, Cyber Crime and Cyber Security
P
Proofpoint News Feed
The Last Watchdog
The Last Watchdog
L
LINUX DO - 最新话题
Hugging Face - Blog
Hugging Face - Blog
Apple Machine Learning Research
Apple Machine Learning Research
Schneier on Security
Schneier on Security
S
Securelist
云风的 BLOG
云风的 BLOG
Stack Overflow Blog
Stack Overflow Blog
博客园_首页
AWS News Blog
AWS News Blog
TaoSecurity Blog
TaoSecurity Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Recent Commits to openclaw:main
Recent Commits to openclaw:main
博客园 - 三生石上(FineUI控件)
C
CXSECURITY Database RSS Feed - CXSecurity.com
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Cloudbric
Cloudbric
C
Cybersecurity and Infrastructure Security Agency CISA
Project Zero
Project Zero
C
Check Point Blog
S
Security Affairs

博客园 - lodestar

一张图掌握数据存储 使用xtrabackup实现mysql定时热备份 开发篇1:使用原生api和Langchain调用大模型 预热篇2:从RNN到Transformmer 预热篇1:大模型训练显卡选型 macbook安装scala、hadoop、saprk环境 centos6.5 squid安装 一次linux服务器黑客入侵后处理 linux上搭建svn服务器 Windows系统下Oracle每天自动备份 android中listView的几点总结 andorid进度条使用 andorid定时器应用 - lodestar Android网络应用(第一部分) - lodestar 错误数据导致java.lang.IllegalArgumentException:Unsupported configuration attributes 使用ACEGI搭建权限系统:第三部分 acegi安全框架使用:第二部分 使用ACEGI实现权限控制,第一部分 ajax实现用户名存在校验
使用template method模式简化android列表页面
lodestar · 2012-11-09 · via 博客园 - lodestar

场景:展现列表数据,点击后显示明细,这种列表页面是web开发和android开发经常会碰到的页面,在android应用中,这些页面有一些共性的需求:

1.       分页处理:每次查询只查询几条几率,通过滚屏或者最下方的提示按钮增量查询第二页

2.       异步数据加载,网络查询这种操作,可能由于网络原因,超时报异常。所以:第一次查询和以后的增量查询都需要异步处理

3.       点击后查询明细数据

类似OA的系统中,这类页面会非常多,而这部分代码基本是拷贝粘贴,通过使用template method模式,可以简化此类页面的开发

算法:template method是保持算法骨架不变,使具体的算法发生变化

这里我们建1个抽象类,实现算法骨架:

1.       加载页面

2.       计算屏幕大小,确定分页查询的条目数

3.       得到具体的listView

4.       打开进度条后异步查询

5.       查询后在Hander中处理

5.1   得到具体的Adapter

5.2   Adapter绑定ListView并实现增量查询

5.3   注册ListView的条目单击、点击变色等事件

上面的每个步骤都是抽象方法,在继承类中实现算法的变化

分页查询:java web开发中,依托Hibernate或者jdbc,分页查询有比较完整的解决方法。我们可以充分利用已有的分页查询,android提交给后台的数据包括开始记录数据,查询结束记录数。记录的开始和结束条目需要在滚屏或者点击增量查询按钮时获得,在android客户端的处理推荐几篇博客,很详细,这里就不再说了。

http://www.oschina.net/question/54100_31819

http://blog.csdn.net/cjjky/article/details/6898871

http://blog.csdn.net/wangkuifeng0118/article/details/7252423

         其他:在实际应用中,由于明细查询弹出数据框显示,没有新开activity,所以抽象类中封装了附件是否已下载判断、附件下载的动态列表。项目中使用httpClientsession在网络中断后可能丢失,像web程序一样,seesion丢失后需要重新登录,重新查询,否则不能正确显示和用户相关数据,这个也可封装在抽象类中。极大的简化了开发后续页面的开发,而且维护方便。