微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

创建xml文件传统

xml格式如下:



创建Button监听器

<Button
        android:onClick="backSms"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="短信的备份" />

创建model层:SmsInfo类(有参无参构造方法,getset对儿)

<span style="white-space:pre">	</span>private long date; // 短信时间
	private int type; // 短信类型(1代表发送,2代表接收)
	private String body; // 短信内容
	private String address; // 短信收(发)件人地址


package org.gentry.writexml;

import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

import org.gentry.writexml.domain.SmsInfo;

import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
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 = 1350000000;
		for (int i = 0; i < 10; i++) {
			smsInfos.add(new SmsInfo(System.currentTimeMillis(),random
					.nextInt(2) + 1,"短信内容" + i,Long.toString(number + i)));
		}
	}

	/**
	 * 备份手机的短信
	 * 
	 * @param view
	 */
	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("<sms>");

			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("<data>");
			sb.append(info.getDate());
			sb.append("</data>");
			
			sb.append("</sms>");
		}
		sb.append("</smss>");

		try {
			File file = new File(Environment.getExternalStorageDirectory(),"backup.xml");
			FileOutputStream fos = new FileOutputStream(file);
			fos.write(sb.toString().getBytes());
			fos.close();
			Toast.makeText(this,"备份成功",Toast.LENGTH_SHORT).show();
		} catch (Exception e) {
			// Todo Auto-generated catch block
			e.printstacktrace();
			Toast.makeText(this,"备份失败",Toast.LENGTH_SHORT).show();
		}

	}
}

原文地址:https://www.jb51.cc/xml/298299.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。