Android学习(22) -- 数据存储之使用xml保存数据
2016-04-14 22:44
501 查看
在实际开发中,经常会用到xml来存储数据,比如:备份手机联系人,备份短信等等。我们以备份短信为例来讲解下xml的使用。
要想备份短信,那么我们就需要创建一个操作短信的JavaBean。如代码:
接下来,我们在Activity中编写一个点击事件用于存储短信(为了方便理解xml操作,我们使用模拟的数据的方式进行演示)。
要想备份短信,那么我们就需要创建一个操作短信的JavaBean。如代码:
public class Message { private String body;<span style="white-space:pre"> </span>//短信内容 private String date; //时间 private String address; //地址 private String type; //类型 1是接受 2是发送 public String getBody() { return body; } public void setBody(String body) { this.body = body; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getType() { return type; } public void setType(String type) { this.type = type; } public Message(String body, String date, String address, String type) { super(); this.body = body; this.date = date; this.address = address; this.type = type; } }
接下来,我们在Activity中编写一个点击事件用于存储短信(为了方便理解xml操作,我们使用模拟的数据的方式进行演示)。
public class MainActivity extends Activity { List<Message> smsList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //虚拟10条短信 smsList = new ArrayList<Message>(); for(int i = 0; i < 10; i++){ Message sms = new Message("模拟数据 " + i, System.currentTimeMillis() + "", "133"+i+i, "1"); smsList.add(sms); } } public void click(View v){ if(Environment .getExternalStorageState().equals(Environment.MEDIA_MOUNTED) ){ //在内存中把xml备份短信的格式拼接出来 StringBuffer sb = new StringBuffer(); sb.append("<?xml version='1.0' encoding='utf-8' standalone='yes' ?>"); sb.append("<messages>"); for (Message sms : smsList) { sb.append("<sms>"); sb.append("<body>"); sb.append(sms.getBody()); sb.append("</body>"); sb.append("<date>"); sb.append(sms.getDate()); sb.append("</date>"); sb.append("<type>"); sb.append(sms.getType()); sb.append("</type>"); sb.append("<address>"); sb.append(sms.getAddress()); sb.append("</address>"); sb.append("</sms>"); } sb.append("</messages>"); File file = new File(Environment .getExternalStorageDirectory(),"sms.xml"); try { FileOutputStream fos = new FileOutputStream(file); fos.write(sb.toString().getBytes()); fos.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }else{ Toast.makeText(SDcardActivity.this,"此时SDcard不存在或者不能进行读写操作", Toast.LENGTH_SHORT).show(); } } }
相关文章推荐
- Android系统权限和root权限
- android单元测试
- android按钮点击的四种响应方式
- android:windowSoftInputMode属性
- Android学习笔记3 Activity的生命周期
- Android Fragment使用详解
- [未解决]Android/Java播放正弦波模拟信号时出现噪音
- Android二维码
- Android学习第七天 Activity细讲
- Android学习之图片加载库Fresco
- android AsyncTask介绍
- Android开发之Toast的用法
- android插件开发-就是你了!启动吧!插件的activity(二)
- Android无线调试及手机设备与PC同屏工具——Chrome插件Vysor
- Android的学习之路(三)项目的启动过程和安装过程具体解释
- android 开发 时间的计算问题
- Android Timer schedule
- 【Android】Android中期项目设计题目-界面设计小作业
- Android论如何写一个正确的单例模式
- Android下设置CPU核心数和频率