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

  • 相关阅读:
    CQUOJ 10819 MUH and House of Cards
    CQUOJ 9920 Ladder
    CQUOJ 9906 Little Girl and Maximum XOR
    CQUOJ 10672 Kolya and Tandem Repeat
    CQUOJ 9711 Primes on Interval
    指针试水
    Another test
    Test
    二分图匹配的重要概念以及匈牙利算法
    二分图最大匹配
  • 原文地址:https://www.cnblogs.com/lodestar/p/2763030.html
Copyright © 2011-2022 走看看