安卓开发之利用XmlSerializer生成XML文件

 1 package com.lidaochen.phonecall;
 2 
 3 import android.net.Uri;
 4 import android.os.Environment;
 5 import android.support.v7.app.AppCompatActivity;
 6 import android.os.Bundle;
 7 import android.util.Log;
 8 import android.util.Xml;
 9 import android.view.View;
10 import android.widget.Button;
11 import android.widget.TabHost;
12 import android.widget.ThemedSpinnerAdapter;
13 import android.widget.Toast;
14 
15 import org.xmlpull.v1.XmlSerializer;
16 
17 import java.io.File;
18 import java.io.FileOutputStream;
19 import java.util.ArrayList;
20 import java.util.List;
21 
22 public class MainActivity extends AppCompatActivity{
23     private List<Sms> smsLists;
24     @Override
25     protected void onCreate(Bundle savedInstanceState) {
26         super.onCreate(savedInstanceState);
27         setContentView(R.layout.activity_main);
28         // 初始化我们要备份的数据
29         smsLists = new ArrayList<Sms>();
30         for (int i = 0; i < 10; i++)
31         {
32             Sms sms = new Sms();
33             sms.setAddres("10000" + i);
34             sms.setBody("Hello" + i);
35             sms.setDate("500" + i);
36             // 把sms对象加入到集合中
37             smsLists.add(sms);
38         }
39     }
40     // 按钮点击事件
41     public void click(View v)
42     {
43         try{
44             // 1、通过Xml这个工具类去获取XmlSerializer类的实例
45             XmlSerializer serializer = Xml.newSerializer();
46             // 2、设置XmlSerializer序列化器参数
47             File file = new File(Environment.getExternalStorageDirectory().getPath(), "LiDaochen.xml");
48             FileOutputStream fos = new FileOutputStream(file);
49             serializer.setOutput(fos, "utf-8");
50             // 3、写xml文档开头
51             serializer.startDocument("utf-8", true);
52             // 4、写xml根节点
53             serializer.startTag(null, "smss");
54             for(Sms sms:smsLists)
55             {
56                 serializer.startTag(null, "sms");
57                 // address节点
58                 serializer.startTag(null, "addres");
59                 serializer.text(sms.getAddres());
60                 serializer.endTag(null, "addres");
61                 // body节点
62                 serializer.startTag(null, "body");
63                 serializer.text(sms.getBody());
64                 serializer.endTag(null, "body");
65                 // date节点
66                 serializer.startTag(null, "date");
67                 serializer.text(sms.getDate());
68                 serializer.endTag(null, "date");
69                 serializer.endTag(null, "sms");
70             }
71             // 文档结尾
72             serializer.endTag(null, "smss");
73             serializer.endDocument();
74             // 关闭流
75             fos.close();
76         }
77         catch (Exception e)
78         {
79             e.printStackTrace();
80         }
81     }
82 }
 1 package com.lidaochen.phonecall;
 2 
 3 public class Sms {
 4     private String addres;
 5     private String body;
 6     private String date;
 7 
 8     public String getAddres() {
 9         return addres;
10     }
11 
12     public String getBody() {
13         return body;
14     }
15 
16     public String getDate() {
17         return date;
18     }
19 
20     public void setAddres(String addres) {
21         this.addres = addres;
22     }
23 
24     public void setBody(String body) {
25         this.body = body;
26     }
27 
28     public void setDate(String date) {
29         this.date = date;
30     }
31 }

 

转载于:https://www.cnblogs.com/duxie/p/10887362.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值