Android学习笔记(十五)
- XML数据解析
- Pull解析方式
- 获取一个XmlPullParserFactory的实例,并借助该实例得到XmlPullParser对象
- 调用XmlPullParser的setInput()方法将服务器返回的XML数据传入
- 通过getEventType()可以得到当前的解析事件,通过While循环不断地进行解析,直到解析事件为XmlPullParser.END_DOCUMENT。
- 通过getName()方法得到当前节点的名字,从而进行判断获取。
- SAX解析方式:新建一个类继承自DefaultHandle,重写五个父类的方法
startDocument()//开始XML解析的时候调用
,startElement()//开始解析某个节点的时候调用
,characters()//获取节点内容时调用
,endElement()//完成解析某个节点的时候调用
,
- Pull解析方式
- 解析JSON格式数据
- 使用JSONObject
- 得到服务器返回的数据
- 将返回的数据传入一个JSONArray对象中,然后循环读取这个JSONArray
- JSONArray中每一个元素都是一个JSONObject对象。
- 最后调用getString()方法将这些数据取出
- 使用GSON:可以将一段JSON格式的字符串自动映射成一个对象
- 直接调用
Person person = gson.fromJson(jsonData,Person.class):
就可以将JSON数据解析成一个Person对象了 - 如果要解析的是一段JSON数组,我们就要借助TypeToken将期望解析成的数据类型传入到fromJson中
- 直接调用
- 使用JSONObject
- 基于位置的服务:
- LocationManager的基本用法:
- 获取LocationManager的实例:调用Context的getSystemService()方法获取到,传入Context.LOCATION_SERVICE。
- 选择一个位置提供器:GPS_PROVIDER(GPS定位,精确度高、费电)、NETWORK_PROVIDER(网络定位、精确度低、耗电低)和PASSIVE_PROVIDER.将选择好的位置提供器传入到getLastKnownLocation()方法中,得到一个Location对象。
- 通过requestLocationUpdates()方法,传入一个LocationListener实例。requestLocationUpdate()方法传入四个参数,第一个参数是位置提供器的类型,第二个参数是监听位置变化的时间间隔,第三个参数是监听位置变化的距离间隔,第四个参数是LocationListener监听器.
- 反向地址编码:Geocoding API的用法
- 发送一个HTTP请求给谷歌的服务器,再对返回的JSON数据进行解析
- 开一期各子线程,然后使用HttpClient去请求这个地址,且在HttpGet中添加一个消息头,将语言类型指定为中文
- 对服务器返回的JSON数据进行解析,服务器会返回一组位置信息,这些信息都是放在reults节点下,只要获取其中的第一条就可以了。
- 从formatted_address节点中取出格式化的位置信息。
- LocationManager的基本用法: