作者在 2015-07-21 14:41:39 发布以下内容
day10
1、布局
2、数据解析
xml Json
xml:可拓展标记语言
xml:用来保存少量数据
解析方式: sax dom pull
sax 事件驱动
startDocument
startElement
characters
characters
startElement
endElement
characters
endElement
endDocument
localName:不带前缀的标签名
qName:带前缀的标签名
attributes:属性
dom:一次性把所有数据都加载到内存中来 用于服务端编程
pull:类似于sax,解析速度快
Json : 相较于xml,更加节省空间,解析简单
JsonObject格式的数据
注意:
a、以{}开始跟结束
b、以键值对的形式保存数据 key:value
key:必须是字符串
value:基础数据,引用类型,Json对象,Json数组
c、数据与数据以逗号隔开
例如:
{"name":"小明","age":27,"married":false}
{"name":"小红","age":23,"address":{"province":"福建省","city":"厦门","street":"xxxx"}}
确保json格式数据的正确性 JsonView工具
往JsonObject对象中去添加数据
JsonArray 格式的数据
格式:
a、以[]开始跟结束
b、每一项都是一个jsonObject格式的数据
c、数据与数据以逗号隔开
d、最后一项不要加 逗号
[{"name":"小明","age":23,"married":false},{"name":"磊","age":26,"married":true},{"name":"韩梅梅","age":25,"married":true}]
练习:
Listview + Asynctask + Json
a、下载包含了所有信息的文件
已知:某个包含了所有信息的文件的下载路径,所需的数据的key
http://192.168.56.1:8080/service.txt
title
desc
imageUrl
时机:界面打开的时候去下载,且只下载一回
onCreate onStart onResume
步骤:
1)先通过Url下载该文件,并且读取到该文件中的所有内容
2)将得到jsonArray格式的数据进行解析,存放到容器中
b、下载图标
时机:有需要的时候才去下,添加下载的优化
实现步骤:
1、先准备好所需的数据,注意编码格式,使用UE,另存为
UTF-8无Bom
2、将数据放入到JsonView中进行查看,注意最后一项不要加逗号
3、实现文件下载
打开应用,一片空白
a、hfs就没下载,检查权限,检查路径,检查genymotion
b、hfs有下载,却还是一片空白
1)下载下来的数据,格式不是正确JsonArray格式的数据
2)解析出错
3)数据下载解析完成后,去刷新listview
练习的升级:
1、若涉及数据添加,就会出现前面的显示不变化,最后几行却重复下载了
将保存已经下载好的图标的容器的key由position改为图片路径
用来保存已经创建的异步对象的key由position改为图片路径
2、headview & footview
注意:添加头尾必须在设置适配器之前