xml文件的序列化
发布时间:2020-12-16 07:40:39 所属栏目:百科 来源:网络整理
导读:MainActivity.xml package com.demo.generatexml;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.ArrayList;import java.util.List;import java.util.Random;impo
MainActivity.xml package com.demo.generatexml; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Random; import org.xmlpull.v1.XmlSerializer; import android.os.Bundle; import android.os.Environment; import android.provider.Telephony.Sms; import android.app.Activity; import android.util.Xml; import android.view.View; import 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(); long number = 135986456; for(int i=0; i<10; i++){ smsInfos.add(new SmsInfo(System.currentTimeMillis(),random.nextInt(2)+1,"短信内容"+i,Long.toString(number+i),i)); } } public void backSms(View view){ //假设我已经备份了所有的短信 StringBuilder sb = new StringBuilder(); sb.append("<?xml version="1.0" encoding="utf-8"?>"); sb.append("<smss>"); for(SmsInfo info : smsInfos){ sb.append("<smss>"); sb.append("<address>"); sb.append(info.getAddress()); sb.append("</address>"); sb.append("<type>"); sb.append(info.getType()); sb.append("</type>"); sb.append("<body>"); sb.append(info.getBody()); sb.append("</body>"); sb.append("<date>"); sb.append(info.getDate()); sb.append("</date>"); sb.append("</smss>"); } sb.append("</smss>"); try { File file = new File(Environment.getExternalStorageDirectory(),"backup.xml"); FileOutputStream fos; fos = new FileOutputStream(file); fos.write(sb.toString().getBytes()); fos.close(); Toast.makeText(this,"备份成功",0).show(); } catch (FileNotFoundException e) { e.printStackTrace(); Toast.makeText(this,"备份失败",0).show(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); Toast.makeText(this,0).show(); } } public void backSms2(View view){ try { XmlSerializer serializer = Xml.newSerializer(); File file = new File(Environment.getExternalStorageDirectory(),"backup2.xml"); FileOutputStream os = new FileOutputStream(file); serializer.setOutput(os,"utf-8"); serializer.startDocument("utf-8",true); serializer.startTag(null,"smss"); for(SmsInfo info : smsInfos){ serializer.startTag(null,"sms"); serializer.attribute(null,"id",info.getId()+""); serializer.startTag(null,"body"); serializer.text(info.getBody()); serializer.endTag(null,"body"); serializer.startTag(null,"address"); serializer.text(info.getAddress()); serializer.endTag(null,"address"); serializer.startTag(null,"type"); serializer.text(info.getType() + ""); serializer.endTag(null,"type"); serializer.startTag(null,"date"); serializer.text(info.getDate() + ""); serializer.endTag(null,"date"); serializer.endTag(null,"sms"); } serializer.endTag(null,"smss"); serializer.endDocument(); os.close(); Toast.makeText(this,0).show(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block Toast.makeText(this,0).show(); e.printStackTrace(); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block Toast.makeText(this,0).show(); e.printStackTrace(); } catch (IllegalStateException e) { // TODO Auto-generated catch block Toast.makeText(this,0).show(); e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block Toast.makeText(this,0).show(); e.printStackTrace(); } } }SmsInfo.java package com.demo.generatexml; public class SmsInfo { private long date; private int type; private String body; private String address; private int id; public SmsInfo() { } public SmsInfo(long date,int type,String body,String address,int id) { super(); this.date = date; this.type = type; this.body = body; this.address = address; this.id = id; } public long getDate() { return date; } public void setDate(long date) { this.date = date; } public int getType() { return type; } public void setType(int type) { this.type = type; } public String getBody() { return body; } public void setBody(String body) { this.body = body; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public int getId() { return id; } public void setId(int id) { this.id = id; } }activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <Button android:id="@+id/btn_backSms" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="71dp" android:onClick="backSms" android:text="备份短信" /> <Button android:id="@+id/btn_backSms2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/btn_backSms" android:layout_centerHorizontal="true" android:layout_marginTop="84dp" android:text="备份短信2" android:onClick="backSms2" /> </RelativeLayout> AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.demo.generatexml" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.demo.generatexml.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 使用XStream序列化、反序列化XML数据时遇到的各种问题
- 关于夏天出生的人,Flex前端显示出生时间少一个小时和Ubunt
- Flex中TextInput组件如何设置限制长度,字符
- urlrewrite.xml配置
- objective-c – 可可按钮滚动与mouseEntered:和mouseExite
- react-native – 使用可独立对齐和追加的Listview元素的Rea
- ruby-on-rails – 要导入的文件未找到或不可读:bootstrap
- ruby – 让无头浏览器停止加载页面
- nrf51822教程系列 向nrf51822 flash中写入数据(flash write
- 使用c#Func作为IQueryable的一部分而不执行内存调用