2015.5.10安卓笔记之sharedprefrence、xml序列化、pull解析xml文件
来源:互联网 发布:中文域名没人用 编辑:程序博客网 时间:2024/05/24 06:40
1.获得sharedprefrence对象
SharedPreferences sp=context.getSharedPreferences("config", Context.MODE_PRIVATE);
注意:config不需要指定后缀名,sharedprefrence会自动在包名下创建/shared_pfefs/config.xml配置文件。
2.获得编辑器,往里面存数据,存完后记得提交 .commit();
3.xml序列化(把xml文件从内存里写到文件里)
4.java中解析xml文件两种方式:
①DOM解析 加载内存,生成一个树状结构 缺点:消耗内存较大,不适合解析较大的xml文件.
②SAX解析 基于事件的方式,自上而下,速度快,效率高 缺点:不能倒退
5.Android中解析xml
方式:pull(类似于java中的SAX解析)
代码:
有一个a.xml文件h
public static List<WeatherInfo> getWeatherInfos(InputStream is)
MainActivity.java
SharedPreferences sp=context.getSharedPreferences("config", Context.MODE_PRIVATE);
注意:config不需要指定后缀名,sharedprefrence会自动在包名下创建/shared_pfefs/config.xml配置文件。
2.获得编辑器,往里面存数据,存完后记得提交 .commit();
Editor editor=sp.edit();
editor.putString("username", username);
editor.putString("password", password);
editor.commit(); 3.xml序列化(把xml文件从内存里写到文件里)
XmlSerializer serializer = Xml.newSerializer();// 获得序列化对象
File file = new File(Environment.getExternalStorageDirectory(),
"info.xml");
FileOutputStream os = new FileOutputStream(file);
serializer.setOutput(os, "utf-8");// 指定以某种格式写到一个输出流
serializer.startDocument("utf-8", true);// 头部的定义,是否为独立文件
serializer.startTag(null, "phones");
for (Phone p : list) {
serializer.startTag(null, "phone");
serializer.attribute(null, "id", p.getId() + "");
serializer.startTag(null, "number1");
serializer.text(p.getNumber());
serializer.endTag(null, "number1");
serializer.startTag(null, "time");
serializer.text(p.getTime());
serializer.endTag(null, "time");
serializer.startTag(null, "name");
serializer.text(p.getName());
serializer.endTag(null, "name");
serializer.startTag(null, "type");
serializer.text(p.getType() + "");
serializer.endTag(null, "type");
serializer.endTag(null, "phone");
}
serializer.endTag(null, "phones");
serializer.endDocument(); 4.java中解析xml文件两种方式:
①DOM解析 加载内存,生成一个树状结构 缺点:消耗内存较大,不适合解析较大的xml文件.
②SAX解析 基于事件的方式,自上而下,速度快,效率高 缺点:不能倒退
5.Android中解析xml
方式:pull(类似于java中的SAX解析)
代码:
有一个a.xml文件h
public static List<WeatherInfo> getWeatherInfos(InputStream is)
throws Exception {
// new xml解析器
XmlPullParser parser = Xml.newPullParser();
// 初始化parser
parser.setInput(is, "utf-8");
int type = parser.getEventType();
List<WeatherInfo> weatherinfos = null;
WeatherInfo weatherinfo = null;
while (type != XmlPullParser.END_DOCUMENT) {
switch (type) {
case XmlPullParser.START_TAG:
if ("info".equals(parser.getName())) {
weatherinfos = new ArrayList<WeatherInfo>();
} else if ("city".equals(parser.getName())) {
weatherinfo = new WeatherInfo();
String strid = parser.getAttributeValue(0);
weatherinfo.setId(Integer.parseInt(strid));
} else if ("name".equals(parser.getName())) {
System.out.println(parser.nextText());
String name = parser.nextText();
Log.i("Test",name);
weatherinfo.setName(name);
} else if ("pm".equals(parser.getName())) {
weatherinfo.setPm(parser.nextText());
} else if ("wind".equals(parser.getName())) {
weatherinfo.setWind(parser.nextText());
} else if ("weather".equals(parser.getName())) {
weatherinfo.setWeather(parser.nextText());
} else if ("temp".equals(parser.getName())) {
weatherinfo.setTemp(parser.nextText());
} else if ("date".equals(parser.getName())) {
weatherinfo.setDate(parser.nextText());
}
break;
case XmlPullParser.END_TAG:
if ("city".equals(parser.getName())) {
weatherinfos.add(weatherinfo);
weatherinfo = null;
}
break;
}
type = parser.next();
}
return weatherinfos;
}
}
//获得资源一种方式
List<WeatherInfo> infos = WeatherService
.getWeatherInfos(MainActivity.class.getClass()
.getResourceAsStream("a.xml"));
//获得资源一种方式
List<WeatherInfo> list = WeatherService
.getWeatherInfos(getResources().getAssets().open("a.xml"));
StringBuffer sb = null;
for (WeatherInfo info : list) {
String str = info.toString();
sb.append(str);
sb.append("\n");
}
0 0
- 2015.5.10安卓笔记之sharedprefrence、xml序列化、pull解析xml文件
- 安卓xml序列化和pull解析笔记
- 安卓笔记之XML解析(DOM、SAX、PULL)
- 安卓设备PULL解析XML文件
- 6.安卓pull解析XML文件
- 安卓xml pull 解析
- xml序列化、pull解析XML
- Android学习笔记-Xml文件解析之PULL解析实战
- 安卓解析XML文件系列2:使用PULL方式
- 安卓开发-Xml序列化器和Pull解析器
- 安卓学习笔记07——使用pull解析xml文件
- Android复习之旅--XML序列化和pull解析
- Android 个人学习笔记之--- Pull解析XML文件
- Android学习笔记之—采用Pull解析XML文件
- Android 个人学习笔记之--- Pull解析XML文件
- android开发笔记之PULL解析xml文件
- 安卓使用DOM,SAX,PULL解析xml,安卓写入xml文件
- XML文件解析之PULL模式解析
- 游戏的衰落,更迭的结果
- 欢迎页面(Welcome)
- Android应用程序UI硬件加速渲染环境初始化过程分析
- 清除所有的mobileprovision
- leetcode-Subsets
- 2015.5.10安卓笔记之sharedprefrence、xml序列化、pull解析xml文件
- 如何检查 Android 应用的内存使用情况
- 寻找最大的K个数
- 错误二:程序无法在glassfish上正常运行
- CDN介绍和技术原理
- 2015.5.12安卓学习笔记之PreferenceActivity
- 2015.5.13安卓学习笔记之sqllite数据库
- App开源分享-在路上项目源码
- NYOJ 题目608 畅通工程