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)的更多相关文章

  1. Android之SAX解析XML

    一.SAX解析方法介绍 SAX(Simple API for XML)是一个解析速度快并且占用内存少的XML解析器,非常适合用于Android等移动设备. SAX解析器是一种基于事件的解析器,事件驱动 ...

  2. Android使用SAX解析XML(1)

    可扩展标记语言XML是一种数据交换格式,允许用户自己定义,适合Web传输,能提供独立于程序的数据.XML在Android中也有广泛的应用,Android解析XML的方法有很多,本文介绍使用SAX(Si ...

  3. Android使用SAX解析XML(4)

    util.java文件如下: package com.hzhi.my_sax; import java.io.IOException; import java.io.InputStream; impo ...

  4. Android使用SAX解析xml

    一.理论准备     SAX采用事件驱动机制来解析XML文档,每当SAX解析器发现文档开始.元素开始.文本.元素结束.文档结束等事件时,就会向外发送一次事件,而开发者则可以通过编写事件监听器处理这些事 ...

  5. Android使用SAX解析XML(5)

    parse_handler.java文件: package com.hzhi.my_sax; import org.xml.sax.Attributes; import org.xml.sax.SAX ...

  6. Android使用SAX解析XML(3)

    主界面MainActivity.java: package com.hzhi.my_sax; import java.util.ArrayList; import android.os.Bundle; ...

  7. Android使用SAX解析XML(6)

    应用截图: (1)开始运行时 (2)选择学院 (3)选择专业 (4)选择班级 (5)选择班级的详细信息 本文参考了<Android平台开发之旅>.

  8. Android 使用pull,sax解析xml

    pull解析xml文件 1.获得XmlpullParser类的引用 这里有两种方法 //解析器工厂 XmlPullParserFactory factory=XmlPullParserFactory. ...

  9. Android SAX解析XML

    本篇讲解一下SAX解析XML这种方式,首先来看一下它的基本介绍: SAX是一种以事件驱动的XML API,由它定义的事件流可以指定从解析器传到专门的处理程序的代码的XML结构,简单的讲,它是种解析速度 ...

随机推荐

  1. ASP.NET将原始图片按照指定尺寸等比例缩放显示图片

    网站上可能会有很多图片,比如产品图片等,而且他们可能大小不一,宽度和高度也不一定一样,有的很大有的很小.如果放在一张网页上,可能会破坏版面,但是如果强制让他们按照指定的宽度和高度显示,因为比例不同还会 ...

  2. Atitit 发帖机实现(4 )- usbQBM1601 gui操作标准化规范与解决方案attilax总结

    Atitit 发帖机实现(4 )- usbQBM1601 gui操作标准化规范与解决方案attilax总结 1.1. 根据gui的类型使用不同的gui调用api1 1.2. Script化1 1.3. ...

  3. salesforce 零基础开发入门学习(八)数据分页简单制作

    本篇介绍通过使用VF自带标签和Apex实现简单的数据翻页功能. 代码上来之前首先简单介绍一下本篇用到的主要知识: 1.ApexPages命名空间 此命名空间下的类用于VF的控制. 主要的类包括但不限于 ...

  4. WPF入门教程系列二——Application介绍

    一.Application介绍 WPF和WinForm 很相似, WPF与WinForm一样有一个 Application对象来进行一些全局的行为和操作,并且每个 Domain (应用程序域)中仅且只 ...

  5. 快速入门系列--WCF--05事务

    最近开始WCF相关知识的学习,虽然实际工作中使用公司自己的一套SOA系统,但微软的一套服务架构还是具有很大的参考意义.除了WCF的一些基础使用,相对比较复杂的内容有分布式的事务和通信的安全等,不过基本 ...

  6. 解决h5的video标签,android、ipad客户端播放正常,iphone客户端无法播放

    在做html5时插入一个视频播放标签video后,测试时android.ipad客户端播放正常,唯独iphone自带浏览器无法播放. 解决办法: 判断用户所使用客户端访问h5页面时是iphone时,点 ...

  7. CSS 框模型( Box module )

    框和布局 在 KB005: CSS 层叠 中已经介绍了 CSS 的重要之处.CSS 可以说是页面表现的基础, CSS 可以控制布局,控制元素的渲染. 布局是讲在电影画面构图中,对环境的布置.人物地位的 ...

  8. UvaOJ10369 - Arctic Network

    /* The first line of each test case contains 1 <= S <= 100, the number of satellite channels! ...

  9. SQL*Loader之CASE4

    CASE4 1. SQL脚本 [oracle@node3 ulcase]$ cat ulcase4.sql set termout off rem host write sys$output &quo ...

  10. IIS 6中mimemap属性的默认设置

    Collapse this tableExpand this table Extension MIME type .ra audio/x-pn-realaudio .sv4crc applicatio ...