[android] xml文件的序列化

[android] xml文件的序列化,第1张

概述生成xml文件,模拟备份短信,创建短信的业务bean,创建一个domain的包放业务bean,这个业务bean里面,定义成员属性,生成get set方法,生成有参和无参的构造方法。 生成随机

生成xml文件,模拟备份短信,创建短信的业务bean,创建一个domain的包放业务bean,这个业务bean里面,定义成员属性,生成get set方法,生成有参和无参的构造方法。

 

生成随机数,实例化Random,调用Random对象的nextInt(n)方法,生成0n之间的随机数,获取当前系统的时间戳System.currentTimeMillis(),使用for循环,循环生成一个List集合,代表短信的内容

 

点击保存按钮以后,使用StringBuilder对象append()拼接成一个xml的文件内容,根据上几节内容保存的SD卡中。记住要在清单文件中加权限

androID.permission.WRITE_EXTERNAL_STORAGE,如果出现两个清单文件,不能删除这个,是工具BUG。如果右键部署的时候,又开启了一个模拟器,那么这是adb挂掉了,关闭eclipse,在任务管理器中关闭adb.exe,重新打开eclipse

 

以上是传统方式,androID提供了一个面向对象的方式

获取XmlSerilIEr对象,通过Xml.newSerilIEr()方法

调用XmlSerilIEr对象的setoutput(os,enCoding)方法,文件输出流,编码

调用XmlSerilIEr对象的startdocument(enCoding,standalone)方法,xml文件的声明,编码,是否独立

调用XmlSerilIEr对象的startTag(namespace,name)方法,开始节点,命名空间,节点名称

调用XmlSerilIEr对象的endTag(namespace,结束节点,命名空间,节点名称

调用XmlSerilIEr对象的attribute(namespace,name,value)方法,节点属性,命名空间,属性名称,属性值

调用XmlSerilIEr对象的text()方法,节点内容

activity代码:

 

package com.tsh.makexml;import java.io.file; java.io.fileNotFoundException; java.io.fileOutputStream; java.io.IOException; java.util.ArrayList; java.util.List; java.util.Random; org.xmlpull.v1.XmlSerializer; com.tsh.makexml.domain.SmsInfo; androID.app.Activity; androID.os.Bundle; androID.os.Environment; androID.provIDer.Telephony.Sms; androID.util.Xml; androID.vIEw.VIEw; androID.Widget.Toast;public class MainActivity extends Activity {    private List<SmsInfo> smsInfos;    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_main);        smsInfos=new ArrayList<SmsInfo>();        Random random=new Random();        String num="188000000";        for(int i=0;i<10;i++){            int type=random.nextInt(2)+1;            smsInfos.add(new SmsInfo(System.currentTimeMillis(),type,"短信内容"+i,num+i));        }    }    /**     * 备份短信第一种     * @param v     */     backSms(VIEw v){        StringBuilder sb= StringBuilder();        sb.append("<?xml version=\"1.0\" enCoding=\"utf-8\"?>");        sb.append("<smss>");        for(SmsInfo sms:smsInfos){            sb.append("<body>"+sms.getMessage()+"</body>");            sb.append("<date>"+sms.getDate()+"</date>");            sb.append("<type>"+sms.getType()+"</type>");            sb.append("<tel>"+sms.getAddress()+"</tel>");        }        sb.append("</smss>"try {            file file=new file(Environment.getExternalStorageDirectory(),"backup.xml");            fileOutputStream fos= fileOutputStream(file);            fos.write(sb.toString().getBytes());            fos.close();            Toast.makeText(this,"保存成功",0).show();        } catch (Exception e) {            Toast.makeText().show();        }    }         * 备份短信第二种     *  backSms2(VIEw v){        XmlSerializer serializer=Xml.newSerializer();        );            fileOutputStream os= fileOutputStream(file);            serializer.setoutput(os,"utf-8");            serializer.startdocument("utf-8",true);            serializer.startTag(null,"smss");            (SmsInfo sms:smsInfos){                serializer.startTag();                serializer.attribute(,sms.getAddress());                serializer.text(sms.getMessage());                serializer.endTag();            }            serializer.endTag();            serializer.enddocument();            os.close();            Toast.makeText().show();        }    }}

 

业务bean代码:

 com.tsh.makexml.domain;class SmsInfo {    private long date;    int type;    private String message;     String address;    public SmsInfo() {    }        public SmsInfo(long date,1)"> type,String message,String string) {        ();        this.date = date;        this.type = type;        this.message = message;        this.address = string;    }     getDate() {        return date;    }    voID setDate( date) {         getType() {         type;    }    voID setType( type) {         String getMessage() {         message;    }     setMessage(String message) {         String getAddress() {         address;    }     setAddress(String address) {         address;    }    }

 

总结

以上是内存溢出为你收集整理的[android] xml文件的序列化全部内容,希望文章能够帮你解决[android] xml文件的序列化所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1121108.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存