…目录
小朋友,你是不是有很多问号???
关于数据的存储
一、SharedPreferences的应用(重要)
1、获取sp的实例
/** * name 会帮助我们生成一个html文件 * mode 模式 */ SharedPreferences sp; //可将其定义为成员变量 private SharedPreferences sp; sp = getSharedPreferences("config", 0);
2、获取编辑器
Editor edit = sp.edit();
3、存数据
//各种类型Int,String,Boolean,Float,Long等 edit.putString("name", name); edit.putString("pwd", pwd); edit.putInt("number", number);
4、提交数据
edit.commit();
5、回显数据
//在生成的xml文件中读取用户保存密码的文件,回显 /** * key 与set保持一致 * defValue 默认值 ""空字符串 */ //提取数据所用的类型要和第三步骤存储保持一致 String name = sp.getString("name", ""); String pwd2 = sp.getString("pwd", "");
二、生成xml的第一种方式(不是authority用法)
1、创建sb对象
StringBuffer sb = new StringBuffer();
2、开始组拼xml
//[1]组拼xml文件头 " 为转义 sb.append("<?xml version="1.0" encoding="utf-8"?>"); // [3]开始组拼xml根节点 sb.append("<smss>"); // [4]开始组拼xml节点,循环从List里面取数据 for (Sms sms : smsLists) { sb.append("<sms>"); // [5]开始组拼电话号码节点 sb.append("<number>"); sb.append(sms.getNumber()); sb.append("</number>"); // [6]开始组拼短信内容节点 sb.append("<content>"); sb.append(sms.getContent()); sb.append("</content>"); // [7]开始组拼日期节点 sb.append("<date>"); sb.append(sms.getDate()); sb.append("</date>"); sb.append("</sms>"); } sb.append("</smss>");
3、保存数据
/*getCacheDir();getFilesDir();Environment.getExternalStorageDirectory() 其中本例中还需配置权限:WRITE_EXTERNAL_STORAGE*/ File file = new File(Environment.getExternalStorageDirectory(),"xx.xml"); FileOutputStream fos = new FileOutputStream(file); fos.write(sb.toString().getBytes());//sb fos.close();
三、生成xml的第二种方式(authority方法)
1、获取XmlSerializer类的实例,通过Xml这个工具类去获取
XmlSerializer serializer = Xml.newSerializer(); //XmlSerializer为接口
2、设置XmlSerializer序列化器的参数
/* os:流 * encoding:编码方式 */ serializer.setOutput(fos, "utf-8");
3、开始写xml文档
//[1]写xml文档的开头 /* encoding:编码方式 * standalone:生成的xml是否独立 */ serializer.startDocument("utf-8", true); //[2]开始写xml文档的根节点 /* namespace:命名空间 * name:节点名 */ serializer.startTag(null, "sms"); //[3]循环写xml节点 for (Sms sms : smsLists) { serializer.startTag(null, "sms"); serializer.startTag(null, "number"); serializer.text(sms.getNumber()); serializer.endTag(null, "number"); serializer.startTag(null, "content"); serializer.text(sms.getContent()); serializer.endTag(null, "content"); serializer.startTag(null, "date"); serializer.text(sms.getDate()); serializer.endTag(null, "date"); serializer.endTag(null, "sms"); } serializer.endTag(null, "sms"); serializer.endDocument();//关闭刷新 fos.close();//关闭流
四、Xml的解析
1、声明一个pull解析器
XmlPullParser parser = Xml.newPullParser(); //XmlPullParser为接口
2、初始化解析器,设置解析哪个流,用什么编码
parser.setInput(in, "utf-8");
3、获取解析的文档的事件类型
int type = parser.getEventType();
4、具体判断一下,解析到的是哪个标签
while (type != XmlPullParser.END_DOCUMENT) { switch (type) { case XmlPullParser.START_TAG://解析开始标签 //具体判断一下,解析到的是哪个开始标签 if("weather".equals(parser.getName())){ //创建一个集合对象 weatherLists = new ArrayList<WeatherInfo>(); }else if("channel".equals(parser.getName())){ //创建WeatherInfo对象 weatherInfo = new WeatherInfo(); //获取id值 String id = parser.getAttributeValue(0); weatherInfo.setId(id); }else if("city".equals(parser.getName())){ //获取city数据 String city = parser.nextText(); weatherInfo.setCity(city); }else if("wea".equals(parser.getName())){ //获取wea数据 String wea = parser.nextText(); weatherInfo.setWea(wea); }else if("temp".equals(parser.getName())){ //获取temp数据 String temp = parser.nextText(); weatherInfo.setTemp(temp); }else if("wind".equals(parser.getName())){ //获取wind数据 String wind = parser.nextText(); weatherInfo.setWind(wind); }else if("info".equals(parser.getName())){ //获取info数据 String info = parser.nextText(); weatherInfo.setInfo(info); } break; case XmlPullParser.END_TAG://解析结束标签 //具体判断一下,解析到的是哪个结束标签 if("channel".equals(parser.getName())){ //把javaBean对象存到集合中 weatherLists.add(weatherInfo); } break; } //继续向下解析 type = parser.next(); }
5、补充说明的东东
<?xml version="1.0" encoding="utf-8"?> <weather> <channel id='1'> <city>池州</city> <wea>下雨</wea> <temp>20℃</temp> <wind>3</wind> <info>请穿个长袖</info> </channel> </weather> /* 上下对应着看 */ public static final int START_DOCUMENT = 0; public static final int END_DOCUMENT = 1; public static final int START_TAG = 2; public static final int END_TAG = 3; public static final int TEXT = 4; parser.getName(); //获取<>中的内容 parser.next(); //指向下一个节点 parser.nextText(); //获取文本内容
@CopyRight名侦探柯小启
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算