分享

安卓开发_浅谈ListView之分页列表

 quasiceo 2016-07-25

安卓开发_浅谈ListView之分页列表

前言:

在开发的过程中,有时候我们需要从网络解析一些数据,比如最近的一些新闻,我们需要把这些数据用ListView显示出来。

因为是解析一个网络数据源,这样将会一下子将所有的数据解析出来,当数据源数据过大时,就可能会造成解析时间过长,占用内存过大等问题。

这时候想到用分页列表来显示这些数据,即每次只显示一个屏幕所能容纳条数的列表项数据,当用户手指向下拉动的时候,才再加载一个屏幕所能容纳的条数的数据,这样就解决了上述问题。

---------------------------------------------------------------------------------------------------------------------------------

思路:

先来看一个数据源地址,内容为某一个城市待出售房屋信息

1 http://ikft.house.qq.com/index.php?guid=866500021200250&devua=appkft_1080_1920_XiaomiMI4LTE_1.8.3_Android19&order=0&searchtype=normal&devid=866500021200250&appname=QQHouse&mod=appkft&act=searchhouse&channel=71&page=1&rn=20&cityid=1

该地址红色部分代表页数,rn=20代表一页有20条相应数据

通过www.bejson.com网站解析该网址相应的JSON数据为XML格式

复制代码
 1 {
 2     "retcode": 0,
 3     "retmsg": "成功",
 4     "total": "817",
 5     "page": 1,
 6     "rn": 20,
 7     "data": [
 8         {
 9             "fid": "122591",
10             "fcover": "http://p0./estate/0/cbcef0b36d585650ec602ebe0ca56a18.jpg/180",
11             "fname": "鸿坤·理想湾",
12             "faddress": "涿州东高铁新城涿州东站西侧300米",
13             "fregion": "大北京",
14             "fpricedisplaystr": "7200元/平米",
15             "faroundhighprice": 7500,
16             "faroundlowprice": 6500,
17             "groupbuynum": 3587,
18             "lng": "116.052084096376",
19             "lat": "39.4636526249295",
20             "fsellstatus": "1",
21             "istencentdiscount": 0,
22             "bookmark": [
23                 {
24                     "tag": "看房团",
25                     "type": 2
26                 },
27                 {
28                     "tag": "低总价",
29                     "type": 3
30                 },
31                 {
32                     "tag": "品牌开发商",
33                     "type": 3
34                 }
35             ],
36             "price_pre": "均价",
37             "price_value": "7200",
38             "price_unit": "元/平米",
39             "panoid": "",
40             "heading": "",
41             "pitch": "",
42             "has_agent": 1,
43             "hui": 1
44         },
45        
复制代码

也就是说,当我们解析这个网址的数据时,会有20条数据,当把网址红色部分page=1 --->page=2 时,又将显示20条数据

 

怎么实现分页列表一次显示20条数据呢?

从数据源网址可以看出一个我们只要把page依次加一,便可以依次加载对应网址数据源了

也就是说,只要把每次加载的数据添加到适配器中,便可以实现分页列表每页每次加载固定个数个数据条

------------------------------------------------------------------------------------------------------------------------------------------------------------

代码:

1、解析房屋信息,我们这里先只获得房屋名字信息放到ListView中

先建一个房屋实体类

Home.class

2、工具类(http获取数据,json数据解析)

HttpUtil.class
JsonString.class解析JSON数据

3、ListView的自定义适配器类

MyAdapter.class

4、异步任务获得数据

AsyncTaskHome.class

5、主Activity

MainActivity.class

 

效果图:

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多