編輯:關於Android編程
解析XML文件是非常常用的功能,在Android客戶端中,經常與服務器通信都需要xml文件的支持,我們這裡介紹一個
簡單的xml文件的解析,就是使用android中的pull方法進行解析。在java中,有dom解析和sax解析,這個pull解析有些類
似於sax解析,他也是一行一行的讀取然後解析內容的方法.
首先看一下這個簡單的xml文件
-1℃/5℃ 多雲 南風3-4級 上海 200 -1℃/5℃ 多雲 南風3-4級 北京7-8 800 -7℃/5℃ 多雲 南風3-4級 哈爾濱 100
然後我們直接解析這個xml文件,在textview中顯示一下
這裡是代碼,首先是業務Bean
package com.bird.weather;
public class WeatherBean {
private int id;
private String name;
private String wind;
private String weather;
private String temp;
private String pm;
@Override
public String toString() {
return "WeatherBean [id=" + id + ", name=" + name + ", wind=" + wind
+ ", weather=" + weather + ", temp=" + temp + ", pm=" + pm
+ "]";
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getWind() {
return wind;
}
public void setWind(String wind) {
this.wind = wind;
}
public String getWeather() {
return weather;
}
public void setWeather(String weather) {
this.weather = weather;
}
public String getTemp() {
return temp;
}
public void setTemp(String temp) {
this.temp = temp;
}
public String getPm() {
return pm;
}
public void setPm(String pm) {
this.pm = pm;
}
}
package com.bird.weather;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import android.util.Xml;
public class ParseXml {
public static List parse(InputStream is) {
List list = null;
WeatherBean bean = null;
try {
XmlPullParser parser = Xml.newPullParser();
// 初始化解析器
parser.setInput(is, "utf-8");
int type = parser.next();
while (type != XmlPullParser.END_DOCUMENT) {
switch (type) {
case XmlPullParser.START_TAG:
if ("infos".equals(parser.getName())) {
list = new ArrayList();
} else if ("city".equals(parser.getName())) {
bean = new WeatherBean();
bean.setId(Integer.valueOf(parser.getAttributeValue(0)));
} else if ("temp".equals(parser.getName())) {
String temp = parser.nextText();
bean.setTemp(temp);
} else if ("weather".equals(parser.getName())) {
String weather = parser.nextText();
bean.setWeather(weather);
} else if ("wind".equals(parser.getName())) {
String wind = parser.nextText();
bean.setWind(wind);
} else if ("name".equals(parser.getName())) {
String name = parser.nextText();
bean.setName(name);
} else if ("pm".equals(parser.getName())) {
String pm = parser.nextText();
bean.setPm(pm);
}
break;
case XmlPullParser.END_TAG:
if ("city".equals(parser.getName())) {
// 一個城市的信息處理完畢
list.add(bean);
bean = null;
}
break;
}
type = parser.next();
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
}
package com.bird.weather;
import java.util.List;
import android.os.Bundle;
import android.app.Activity;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv = (TextView) findViewById(R.id.tv);
List list = ParseXml.parse(MainActivity.class.getClassLoader().getResourceAsStream("test.xml"));
StringBuffer sb = new StringBuffer();
for(WeatherBean bean : list){
String str = bean.toString();
sb.append(str);
sb.append("\n");
}
tv.setText(sb.toString());
}
}
這樣看來,解析xml文件還是非常簡單的
Android麥克風錄音帶音量大小動態顯示的圓形自定義View
1、所謂無圖無真相,先上效果圖。我們要實現的就是中間那個錄音的按鈕,周邊會顯示一圈音量大小的波形 2、VolumCircleBar繼承自View,我們進行了自定義,代碼
Android Application Thread CPU GC Operatiing and OOM Question 0603-隨手筆記
在之前app寫完測試的時候,跑完整個老化階段包括數據收發都沒問題,鍵入 adb shell top -m 5 發現我的 app pid 占用的 CPU是最多的,其實我想說
Android仿英語流利說取詞放大控件的實現方法(附demo源碼下載)
本文實例講述了Android仿英語流利說取詞放大控件的實現方法。分享給大家供大家參考,具體如下:1 取詞放大控件英語流利說是一款非常幫的口語學習app,在app的修煉頁面
Android開發之android_apk 在線安裝(源代碼分享)
android_apk的在線安裝,除了要設計Android 客戶端的代碼外,還要搭建服務器的代碼,仿真實現中Android軟件的在線升級。 Android 客