Android复习练习七(Android中Xml序列化及Pull解析)
来源:互联网 发布:打码平台源码 编辑:程序博客网 时间:2024/06/06 02:30
需求:在先前QQ登陆界面的基础上,增加一个注册Activity以及一个登陆成功界面的Activity,同时增加注册机制和登陆检验机制,使用xml文件来保存用户名和密码,分别联系安卓下的Xml文件序列化及Pull解析xml文件
登陆成功界面:
注册界面:
xml序列化代码:
public static boolean writeToXml(User user, Context context, String filename) {// 从xml文件读出来userlistuserlist = readFromXml(filename, context);try {if (userlist.contains(user)) {return false;}userlist.add(user);// 1.获得序列化对象XmlSerializer serializer = Xml.newSerializer();// 1.获取要存储的文件,这里要写全.xml文件名File file = new File(context.getFilesDir(), filename);// 指定序列化对象的输出位置以及编码serializer.setOutput(new FileOutputStream(file), ENCODING);//开始写xml文件到本地serializer.startDocument(ENCODING, true);serializer.startTag(null, "users");// <users>for (User u : userlist) {serializer.startTag(null, "user");// <user>serializer.startTag(null, "account");serializer.text(u.getAccount());serializer.endTag(null, "account");serializer.startTag(null, "password");serializer.text(u.getPassword());serializer.endTag(null, "password");serializer.endTag(null, "user");// </user>}serializer.endTag(null, "users");// </users>serializer.endDocument();return true;} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}return false;}
xml文件pull解析代码:
public static ArrayList<User> readFromXml(String filename, Context context) {try {userlist = null;XmlPullParser pullParser = Xml.newPullParser();InputStream is = new FileInputStream(new File(context.getFilesDir(), filename));pullParser.setInput(is, ENCODING);int eventType = pullParser.getEventType();while (eventType != XmlPullParser.END_DOCUMENT) {String tagName = pullParser.getName();switch (eventType) {case XmlPullParser.START_TAG:// 节点起始if (tagName.equals("users")) {userlist = new ArrayList<>();} else if (tagName.equals("user")) {user = new User();} else if (tagName.equals("account")) {user.setAccount(pullParser.nextText());} else if (tagName.equals("password")) {user.setPassword(pullParser.nextText());}break;case XmlPullParser.END_TAG:if (tagName.equals("user")) {userlist.add(user);}break;default:break;}// 继续查找下一个节点的类型eventType = pullParser.next();}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}return userlist;}
0 0
- Android复习练习七(Android中Xml序列化及Pull解析)
- Android复习之旅--XML序列化和pull解析
- Android中使用xml保存数据(xml文件序列化)及使用pull解析xml文件
- android DOM、 SAX 、PULL 解析XML---练习
- Android中使用PULL方式解析XML和XmlSerializer进行序列化
- Android中XML解析-PULL解析
- android中Xml解析之Pull解析
- android XML解析之PULL及单元测试
- XML序列化及PULL解析,DOM解析,SAX解析
- Android Pull解析xml
- android pull 解析xml
- android PULL 解析XML
- Android Pull解析xml
- Android Pull 解析 XML
- Android Pull 解析 XML
- Android Pull解析xml
- Android PULL解析XML
- Android Pull解析xml
- [讲课]2-10 流程控制
- 地方高考信息管理系统方案
- 新职笔记,oracle与js常用方法
- CSS特性的取值以及浏览器的对错误CSS特性值的容错处理
- CVTE在线软件专业题
- Android复习练习七(Android中Xml序列化及Pull解析)
- 各种排序方法比较
- RedHat/CentOS发行版本号及内核版本号对照表
- LeetCode-Remove Duplicates from Sorted Array
- LeetCode 48 Maximum Depth of Binary Tree
- android百度地图开发--自定义最短路径搜索图层
- linux 批量修改
- 单链表的选择排序
- Linux 命令记录