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. Linux grep总结(转)

    源自:http://www.cnblogs.com/end/archive/2012/02/21/2360965.html 1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表 ...

  2. thinkphp里的session、cookie方法

    thinkphp里,对于session和cookie的操作,不管是存值.获取.删除,均只有一个方法.现分享出来,供大家参考参考. /** * session管理函数 * @param string|a ...

  3. JavaScript中this的一些怪异现象

    <!--JavaScript伪协议和内联事件对于this的指向不同--> <a href="#" onclick="alert(this.tagName ...

  4. settimeout里面函数有无双引号的区别

    在写定时器时很容易搞混,所以记下防止忘记. 双引号中的作用域不捕捉局部变量,不用双引号包着的是捕捉局部作用域 var a = function() { alert(1111) } function a ...

  5. Linux常用命令01

    Linux对于我们来说,就是跑程序的运行平台,简单的来说,就是服务器,自己也没怎么系统的学习Linux的命令,随着项目的需要, 比如要查找日志,哪里出问题了,哪里报错了,因此自己也慢慢地懂一些常用的L ...

  6. 【转】中间代码opcode的执行

    原文链接:http://www.orlion.ga/941/ 原文:http://www.nowamagic.net/librarys/veda/detail/1543 假如我们现在使用的是CLI模式 ...

  7. iOS_UIImage_jpg<-->png转换

    // png 图片转化是无损的. 可以有透明效果. // jpg 图片转化是有损的. 质量因子. - (void)jpgToPng { UIImage * image = [UIImage image ...

  8. 常用的Webservice接口

    常用的Webservice接口 . 查询手机:http://www.yodao.com/smartresult-xml/search.s?type=mobile&q=手机号码 . 查询IP:h ...

  9. 优化数据库的方法及SQL语句优化的原则

    优化数据库的方法: 1.关键字段建立索引. 2.使用存储过程,它使SQL变得更加灵活和高效. 3.备份数据库和清除垃圾数据. 4.SQL语句语法的优化.(可以用Sybase的SQL Expert,可惜 ...

  10. Azure ARM (2) 概览

    <Windows Azure Platform 系列文章目录> http://files.cnblogs.com/files/threestone/AzureResourceManager ...