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. JVM的SNMP监控配置

    近期看了一下JVM对监控的支持,除了常规的JMX外居然还有SNMP, 有点意思, 这个网管协议适配的地方还真多,那么就先测试一下. 先随便找一个能在后台持续运行的java小程序,如我手头的BIO的so ...

  2. tr

    参照http://www.cnblogs.com/djcsch2001/archive/2011/05/08/2040255.html tr -options set1 [set2] ---- set ...

  3. Redis学习笔记~关于空间换时间的查询案例

    回到目录 空间与时间 空间换时间是在数据库中经常出现的术语,简单说就是把查询需要的条件进行索引的存储,然后查询时为O(1)的时间复杂度来快速获取数据,从而达到了使用空间存储来换快速的时间响应!对于re ...

  4. Bootstrap~多级导航(级联导航)的实现

    回到目录 在bootstrap官方来说,导航最多就是两级,两级以上是无法实现的,大叔找了一些第三方的资料,终于找到一个不错的插件,使用上和效果上都还不错,现在和大家分享一下 插件地址:http://v ...

  5. EF架构~CodeFirst模型下的数据初始化

    回到目录 我为什么会来 在传统的大型系统设计中,数据库建模是个比开发更早的环节,先有数据库,然后是ORM模型,最后才是开发程序,而这种模型在EF出现后发生了转变,而且有可能将来会被code first ...

  6. FIR.im Weekly - 劳动节我们也没有停下来

    五一到五四的节假日对勤劳的开发者们似乎是零存在,各种干货好资源也并未因假期的到来而减少,所以这周的 Weekly 依然多产. Swift 样式指南:2015年4月更新 这是 @开发技术前线 收录的由 ...

  7. Android入门(十一)SQLite CURD

    原文链接:http://www.orlion.ga/594/ 一.添加数据 SQLiteOpenHelper的getReadableDatabase()或getWritableDatabase()方法 ...

  8. javase基础复习攻略《四》

    本篇内容重点介绍JAVA中的异常处理机制,什么是JAVA异常?JAVA异常是JAVA提供的用于处理程序中错误的一种机制.所谓错误就是指在程序的运行过程中出现的一些异常事件(如:0溢出,数组下表越界,所 ...

  9. js连续指定两次或者多次的click事件(解决办法)

    setTimeout (表达式,延时时间)setTimeout(表达式,交互时间)延时时间/交互时间是以豪秒为单位的(1000ms=1s) setTimeout  在执行时,是在载入后延迟指定时间后, ...

  10. java中并不是任意多个接口都可以实现多实现

    interface A{ public abstract void show(); } interface B{ public abstract int show(); } public class ...