Android使用SAX解析XML(2)
school类包含了一个major列表,可以增加该列表的元素,以及返回该列表,还实现了Parcelable.Creator接口。
package com.hzhi.my_sax; import java.util.ArrayList; import android.os.Parcel;
import android.os.Parcelable; public class school implements Parcelable{ public static final String tag_name = "School"; public String name;
public String code;
public ArrayList<major> majors; public static final Parcelable.Creator<school> CREATOR =
new Parcelable.Creator<school>(){ @Override
public school createFromParcel(Parcel in) {
// TODO Auto-generated method stub
return new school(in);
} @Override
public school[] newArray(int size) {
// TODO Auto-generated method stub
return new school[size];
} }; @Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
} @Override
public void writeToParcel(Parcel arg0, int arg1) {
// TODO Auto-generated method stub } // 实现Parcelable接口
public school(Parcel in){ this.name = in.readString();
this.code = in.readString(); } // 构造函数
public school(String name, String code){ this.name = name;
this.code = code;
this.majors = new ArrayList<major>(); } // 增加专业
public void add_major(major m){ this.majors.add(m); } // 返回专业
public ArrayList<major> get_majors(){
return this.majors;
} // 重写toString
public String toString() {
// TODO Auto-generated method stub
return (getName());
} public String getName() { if(this.name == null) {
return ("(Default)");
} return (this.name); } }
major类包含了一个clas列表,可以增加该列表的元素,以及返回该列表,也实现了Parcelable.Creator接口。
package com.hzhi.my_sax; import java.util.ArrayList;
import android.os.Parcel;
import android.os.Parcelable; public class major implements Parcelable{ public static final String tag_name = "Major"; public String name;
public String code;
public ArrayList<clas> clases; public static final Parcelable.Creator<major> CREATOR =
new Parcelable.Creator<major>(){ @Override
public major createFromParcel(Parcel in) {
// TODO Auto-generated method stub
return new major(in);
} @Override
public major[] newArray(int size) {
// TODO Auto-generated method stub
return new major[size];
} }; @Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
} @Override
public void writeToParcel(Parcel dest, int flags) { // TODO Auto-generated method stub
dest.writeString(this.name);
dest.writeString(this.code); } // 实现Parcelable接口
public major (Parcel in){ this.name = in.readString();
this.code = in.readString(); } // 构造函数
public major(String name, String code){ this.name = name;
this.code = code;
this.clases = new ArrayList<clas>(); } public String getCode() {
return (this.code);
} public void add_clas(clas c) {
this.clases.add(c);
} public ArrayList<clas> get_clases() {
return this.clases;
} // 重写toString
public String toString() {
// TODO Auto-generated method stub
return (getName());
} public String getName() { if(this.name == null) {
return ("(Default)");
} return (this.name); } }
clas类就不用包含列表了,但还是需要实现Parcelable.Creator接口。
package com.hzhi.my_sax; import android.os.Parcel;
import android.os.Parcelable; public class clas implements Parcelable { public static final String tag_name = "Class"; public String name;
public String code; public static final Parcelable.Creator<clas> CREATOR =
new Parcelable.Creator<clas>(){ @Override
public clas createFromParcel(Parcel in) {
// TODO Auto-generated method stub
return new clas(in);
} @Override
public clas[] newArray(int size) {
// TODO Auto-generated method stub
return new clas[size];
} }; @Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
} @Override
public void writeToParcel(Parcel dest, int flags) { // TODO Auto-generated method stub
dest.writeString(this.name);
dest.writeString(this.code); } public clas(Parcel in){ this.name = in.readString();
this.code = in.readString(); } public clas (final String name, final String code){ this.name = name;
this.code = code; } // 重写toString
public String toString() {
// TODO Auto-generated method stub
return (getName());
} public String getName() { if(this.name == null) {
return ("(Default)");
} return (this.name); } }
以上4个类中,tag_name是为了和XML文件中的节点名称对比,name和code分别对应XML文件中的name和code。4个类都要重写toString()方法,否则返回的就不是数据内容,而是一长串数字。
Android使用SAX解析XML(2)的更多相关文章
- Android之SAX解析XML
一.SAX解析方法介绍 SAX(Simple API for XML)是一个解析速度快并且占用内存少的XML解析器,非常适合用于Android等移动设备. SAX解析器是一种基于事件的解析器,事件驱动 ...
- Android使用SAX解析XML(1)
可扩展标记语言XML是一种数据交换格式,允许用户自己定义,适合Web传输,能提供独立于程序的数据.XML在Android中也有广泛的应用,Android解析XML的方法有很多,本文介绍使用SAX(Si ...
- Android使用SAX解析XML(4)
util.java文件如下: package com.hzhi.my_sax; import java.io.IOException; import java.io.InputStream; impo ...
- Android使用SAX解析xml
一.理论准备 SAX采用事件驱动机制来解析XML文档,每当SAX解析器发现文档开始.元素开始.文本.元素结束.文档结束等事件时,就会向外发送一次事件,而开发者则可以通过编写事件监听器处理这些事 ...
- Android使用SAX解析XML(5)
parse_handler.java文件: package com.hzhi.my_sax; import org.xml.sax.Attributes; import org.xml.sax.SAX ...
- Android使用SAX解析XML(3)
主界面MainActivity.java: package com.hzhi.my_sax; import java.util.ArrayList; import android.os.Bundle; ...
- Android使用SAX解析XML(6)
应用截图: (1)开始运行时 (2)选择学院 (3)选择专业 (4)选择班级 (5)选择班级的详细信息 本文参考了<Android平台开发之旅>.
- Android 使用pull,sax解析xml
pull解析xml文件 1.获得XmlpullParser类的引用 这里有两种方法 //解析器工厂 XmlPullParserFactory factory=XmlPullParserFactory. ...
- Android SAX解析XML
本篇讲解一下SAX解析XML这种方式,首先来看一下它的基本介绍: SAX是一种以事件驱动的XML API,由它定义的事件流可以指定从解析器传到专门的处理程序的代码的XML结构,简单的讲,它是种解析速度 ...
随机推荐
- mysql C API的使用
<MySQL++简介>介绍了如何使用C++来访问mysql,本文记录下使用C API访问mysql,mysql++就是对本文介绍的C-API的封装. 常用函数(名字就能告诉我们用法): M ...
- 关于Java中null的十点详解
对于每一个Java程序员来说,null肯定是一个让人头痛的东西,连Java的发明者都承认这是一项巨大的设计失误,今天就来总结一下Java中关于null的知识. 1.null不属于任何类型,可以被转换成 ...
- EF架构~通过EF6的DbCommand拦截器来实现数据库读写分离~续~添加事务机制
回到目录 上一讲中简单介绍了一个EF环境下通过DbCommand拦截器来实现SQLSERVER的读写分离,只是一个最简单的实现,而如果出现事务情况,还是会有一些问题的,因为在拦截器中我们手动开启了Co ...
- Atitit (Sketch Filter)素描滤镜的实现 图像处理 attilax总结
Atitit (Sketch Filter)素描滤镜的实现 图像处理 attilax总结 1.1. 素描滤镜的实现方法比较简单,这里我们直接写出算法过程如下:1 1.2. 颜色减淡COLOR_DO ...
- 神马是 NaN,它的类型是神马?怎么测试一个值是否等于 NaN?
NaN 是 Not a Number 的缩写,JavaScript 的一种特殊数值,其类型是 Number,可以通过 isNaN(param) 来判断一个值是否是 NaN: console.log(i ...
- try-catch和throw,throws的区别
java里的异常多种多样,这是一种非常有用的机制,它能帮助我们处理那些我们未知的错误,在java里,关于异常的有throw throws,还有一个try catch 程序块.接下来我们挨个看看这几个的 ...
- DataGrid--多记录CRUD
最近在做一个datagrid,但因为引用的Jquery,加上初学者,所以难免费尽周折.现在将完整版贴出来,跟大家分享,一起切磋,也方便自己回顾学习. ps:第一次发帖,不知排版效果如何,瑕疵勿怪. 首 ...
- PHP的学习--PHP的引用
引用是什么 在 PHP 中引用意味着用不同的名字访问同一个变量内容.这并不像 C 的指针,替代的是,引用是符号表别名.注意在 PHP 中,变量名和变量内容是不一样的,因此同样的内容可以有不同的名字.最 ...
- 安装android studio报错Failed to install Intel HAXM.
在安装android studio的过程中,安装到android的模拟器加速器(intel HAXM)这一步时,报错: HAXM是用来管理硬件加速的,估计是用了这个东西模拟器就能告别Eclipse的龟 ...
- 【知识积累】爬虫之网页乱码解决方法(gb2312 -> utf-8)
前言 今天在测试爬虫项目时,发现了一个很严肃的问题,当爬取的网页编码格式为gb2312时,按照一般的办法转化为utf-8编码时总是乱码,PS:爬取的所有网页无论何种编码格式,都转化为utf-8格式进行 ...