您的位置:首页 > 其它

简单XML文件

2016-05-18 08:27 232 查看
主要介绍了使用XML编辑器将自定义的内容以XML的形式进行存储,User类这里不再添加。
public class MainActivity extends ActionBarActivity {

private ProgressBar pb_id;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// 思路:
// 1、获得界面上俺们关心的控件
pb_id = (ProgressBar) findViewById(R.id.pb_id);

// 2、准备与事件属性值吻合的方法
}

/**
* 开始备份
*
* @param view
*/
public void beginBackup(View view) {
// 核心逻辑思路:
// 1、获得联系人信息
List<User> allContactsInfos = new LinkedList<>();
getAllUsers(allContactsInfos);

// 2、开始备份(通过循环,将步骤1中联系人的信息依次写入到sd卡中相应的文件里面)
// -->pull序列化技术
XmlSerializer serializer = Xml.newSerializer();

// 步骤:
// ①指定序列化的目的地
FileWriter writer = null;
try {
writer = new FileWriter(new File(
Environment.getExternalStorageDirectory(),
"contactList.xml"));
serializer.setOutput(writer);

// ②根据xml文件中数据书写的样式,依次调用方法,将内存中的数据写入到输出流
// a)声明部分
// b)文档开始
serializer.startDocument("UTF-8", true);

// 根节点开始
serializer.startTag(null, "users");

int cnt = 0;
pb_id.setMax(allContactsInfos.size());

// c)通过循环,从数据源中读取数据,依次写入
for (User user : allContactsInfos) {
// 每循环一次,写入一个用户的信息
serializer.startTag(null, "user");

// id
serializer.startTag(null, "id");// <id>xxxx</id>
serializer.text(user.getId() + "");
serializer.endTag(null, "id");

// 名字
serializer.startTag(null, "name");
serializer.text(user.getName());
serializer.endTag(null, "name");

// 电话号码
serializer.startTag(null, "phoneNum");
serializer.text(user.getPhoneNum());
serializer.endTag(null, "phoneNum");

// 籍贯
serializer.startTag(null, "address");
serializer.text(user.getAddress());
serializer.endTag(null, "address");

serializer.endTag(null, "user");
cnt++;
pb_id.setProgress(cnt);

}

// 根节点结束
serializer.endTag(null, "users");

// d)文档结束
serializer.endDocument();

serializer.flush();

Toast.makeText(this, "恭喜!备份成功!呵呵。。。。", Toast.LENGTH_SHORT).show();

} catch (IllegalArgumentException | IllegalStateException | IOException e) {
e.printStackTrace();
} finally {
if (writer != null) {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

}

/**
* 模拟读取手机联系人信息
*
* @param allContactsInfos
*/
private void getAllUsers(List<User> allContactsInfos) {
for (int i = 1; i <= 500; i++) {
allContactsInfos.add(new User(i, "独孤求败" + i, "110999" + i, "华山之巅"
+ i));
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: