編輯:關於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 Listparse(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); Listlist = 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文件還是非常簡單的
1、所謂無圖無真相,先上效果圖。我們要實現的就是中間那個錄音的按鈕,周邊會顯示一圈音量大小的波形 2、VolumCircleBar繼承自View,我們進行了自定義,代碼
在之前app寫完測試的時候,跑完整個老化階段包括數據收發都沒問題,鍵入 adb shell top -m 5 發現我的 app pid 占用的 CPU是最多的,其實我想說
本文實例講述了Android仿英語流利說取詞放大控件的實現方法。分享給大家供大家參考,具體如下:1 取詞放大控件英語流利說是一款非常幫的口語學習app,在app的修煉頁面
android_apk的在線安裝,除了要設計Android 客戶端的代碼外,還要搭建服務器的代碼,仿真實現中Android軟件的在線升級。 Android 客