編輯:關於android開發
使用序列化器生成一個xml文件 //1,初始化一個xml文件的序列化器 XmlSerializer serializer = Xml.newSerializer(); //2.初始化序列器參數 File file = new File(Environment.getExternalStorageDirectory(),"backup.xml"); FileOutputStream fos = new FileOutputStream(file); serializer.setOutput(fos, "UTF-8"); //3.開始寫xml文件. serializer.startDocument("UTF-8", true); serializer.startTag(null, "smss"); for(SmsInfo info : smsInfos){ //開始寫sms節點 serializer.startTag(null, "sms"); //開始寫body節點 serializer.startTag(null, "body"); serializer.text(info.getBody()); //body節點結束 serializer.endTag(null, "body"); //開始寫address節點 serializer.startTag(null, "address"); serializer.text(info.getAddress()); serializer.endTag(null, "address"); //開始寫data節點 serializer.startTag(null, "date"); serializer.text(info.getDate()+""); serializer.endTag(null, "date"); // sms節點結束 serializer.endTag(null, "sms"); } //smss根節點結束 serializer.endTag(null, "smss"); //xml 結束 serializer.endDocument(); fos.close(); Toast.makeText(this, "備份短信成功", 0).show(); } catch (Exception e) { e.printStackTrace(); Toast.makeText(this, "備份短信失敗", 0).show(); } #12.使用pull解析xml格式的數據 (重要) public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 設置activity顯示的布局 setContentView(R.layout.activity_main); TextView tv_info = (TextView) findViewById(R.id.tv_info); StringBuilder sb = new StringBuilder(); try { //獲取我們解析出來的天氣信息 List<Channel> channels = WeatherService.getAllWeatherInfos(getClass().getClassLoader().getResourceAsStream("weather.xml")); for(Channel channel : channels){ sb.append(channel.toString()); sb.append("\n"); } //把解析出來的天氣信息設置到textview上 tv_info.setText(sb.toString()); } catch (Exception e) { e.printStackTrace(); Toast.makeText(this, "解析天氣信息失敗", 0).show(); } } } --------------------------------------------------------------- public class WeatherService { /** * 解析服務器返回的數據 獲取天氣信息 * @param is 服務器返回的包含天氣信息的流 (xml) * @return */ public static List<Channel> getAllWeatherInfos(InputStream is) throws Exception{ List<Channel> channels = null; Channel channel = null; //1.獲取xml解析器 XmlPullParser parser = Xml.newPullParser(); //2.設置xml解析器的參數 parser.setInput(is, "utf-8"); //3.開始解析xml文件. int type = parser.getEventType();// 獲取當前的事件的類型 while (type!=XmlPullParser.END_DOCUMENT){ //需要讓pull解析器解析到文件的末尾 switch (type) { case XmlPullParser.START_TAG: if("weather".equals(parser.getName())){//總的開始節點 channels = new ArrayList<Channel>(); //初始化集合 }else if("channel".equals(parser.getName())){//某個城市的信息開始了. channel = new Channel(); //獲取到id的屬性值 String id = parser.getAttributeValue(0); channel.setId(Integer.parseInt(id)); //解析city節點 }else if("city".equals(parser.getName())){ String city = parser.nextText(); channel.setCity(city); //解析溫度節點 }else if("temp".equals(parser.getName())){ String temp = parser.nextText(); channel.setTemp(temp); //解析風力節點 }else if("wind".equals(parser.getName())){ String wind = parser.nextText(); channel.setWind(wind); //解析pm250節點 }else if("pm250".equals(parser.getName())){ String pm250 = parser.nextText(); channel.setPm250(Integer.parseInt(pm250)); } break; //判斷xml的結束節點 case XmlPullParser.END_TAG: if("channel".equals(parser.getName())){ //把解析的內容加入到集合中 channels.add(channel); channel = null; } break; } type = parser.next(); } is.close(); return channels;//把所有的頻道的集合返回回去 } }
nagios二次開發之“依據分組繪制服務圖”背景: 在nagios3.2.0版本,曾將nagios、saltstack、Thinkphp進行整合。在整合的基礎之上,進行了
安卓第一天筆記,安卓第一天安卓第一天筆記 1.移動通信的發展G--(generation) 1G:模擬制式 2G:GSM/CDMA 2.5G:GPRS 2.75G:EDG
Android——Fragment介紹及兩種基本使用方法 今天在調ViewPager的時候,感覺ViewPager+Fragment這種做法更靈活,所以,現
Android種使用Notification實現通知管理以及自定義通知欄(Notification示例四),自定義notification示例一:實現通知欄管理 當針對相