zoukankan      html  css  js  c++  java
  • 使用template method模式简化android列表页面

    场景:展现列表数据,点击后显示明细,这种列表页面是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丢失后需要重新登录,重新查询,否则不能正确显示和用户相关数据,这个也可封装在抽象类中。极大的简化了开发后续页面的开发,而且维护方便。

  • 相关阅读:
    数据绑定(八)使用Binding的RelativeSource
    你是程序猿这块料吗?
    创建与删除索引
    Verilog分频器
    mysql触发器的作用及语法
    QoS令牌桶工作原理
    Android 开发新方向 Android Wear ——概述
    程序猿接私活经验总结,来自csdn论坛语录
    [Node.js]27. Level 5: URL Building & Doing the Request
    [Node.js]26. Level 5 : Route rendering
  • 原文地址:https://www.cnblogs.com/lodestar/p/2763030.html
Copyright © 2011-2022 走看看