android_13_使用XmlSerializer生成XML

来源:互联网 发布:亚像素边缘检测算法 编辑:程序博客网 时间:2024/04/29 08:30

权限,模型类,同上一个项目


效果:




代码:

package com.sg31.stringbuffermakexml;import java.io.File;import java.io.FileOutputStream;import java.util.ArrayList;import java.util.List;import org.xmlpull.v1.XmlSerializer;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.util.Xml;import android.view.Menu;import android.view.MenuItem;import android.view.View;public class MainActivity extends ActionBarActivity {List<Message> msgList;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                generateSomeMessage();    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        // Handle action bar item clicks here. The action bar will        // automatically handle clicks on the Home/Up button, so long        // as you specify a parent activity in AndroidManifest.xml.        int id = item.getItemId();        if (id == R.id.action_settings) {            return true;        }        return super.onOptionsItemSelected(item);    }        private void generateSomeMessage() {    //虚拟10条短信    msgList = new ArrayList<Message>();        for(int i = 0; i < 10; i++){            Message msg = new Message("beyond love shui" + i, System.currentTimeMillis() + "", "1385201314"+i, "1");            msgList.add(msg);        }}                            public void backupBtnClicked(View v){        //使用xml序列化器生成xml文件        //1.拿到序列化器对象        XmlSerializer xs = Xml.newSerializer();        //2.初始化        File file = new File("sdcard/sms_XmlSerializer.xml");        try {            FileOutputStream fos = new FileOutputStream(file);            //enconding:指定用什么编码生成xml文件            xs.setOutput(fos, "utf-8");                        //3.开始生成xml文件            //enconding:指定头结点中的enconding属性的值            xs.startDocument("utf-8", true);                        xs.startTag(null, "message");                        for (Message sms : msgList) {                xs.startTag(null, "sms");                                //>>>>>>>>如果有特殊字符,可以进行转义                xs.startTag(null, "body");                xs.text(sms.getBody());                xs.endTag(null, "body");                //>>>>>>>>                xs.startTag(null, "date");                xs.text(sms.getDate());                xs.endTag(null, "date");                //>>>>>>>>                xs.startTag(null, "type");                xs.text(sms.getType());                xs.endTag(null, "type");                //>>>>>>>>                xs.startTag(null, "address");                xs.text(sms.getAddress());                xs.endTag(null, "address");                                xs.endTag(null, "sms");            }                        xs.endTag(null, "message");                        //告诉序列化器,文件生成完毕            xs.endDocument();        } catch (Exception e) {            e.printStackTrace();        }     }    }


1 0