简单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)); } } }
相关文章推荐
- C# 笔记——覆盖和重写
- 70.如何在xilinx SDK中显示行号
- POJ 3744 Scout YYF I
- pulltorefresh(二)的自定义属性介绍、attrs文件介绍
- C# 笔记——委托
- 面向微信的WebApp产品观
- 监听器的3种类型
- 5年,职业身涯的变迁思考
- CodeForces 608A Saitama Destroys Hotel
- 安卓布局知识点
- 基于DDD的ABP开发框架初探
- JavaWeb(jsp)连接mysql数据库
- 安卓_java环境变量配置error
- QML开发常用知识
- 在Android上打造属于自己的Rxjava框架(一)基础篇
- 教你写一个炫酷的Material Design 风格的登录和注册页面
- 扫描目录下所有文件的文件名
- HDOJ1176数塔
- 漫谈程序员系列:一张图道尽程序员的出路
- servlet原理