文档章节

Android使用SAX解析XML(2)

M
 MSTK
发布于 2014/08/05 17:15
字数 615
阅读 5
收藏 0

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()方法,否则返回的就不是数据内容,而是一长串数字。

本文转载自:http://www.cnblogs.com/mstk/p/3478415.html

M
粉丝 0
博文 43
码字总数 0
作品 0
成都
私信 提问
Android 创建与解析XML(一)—— 概述

Android 是最常用的智能手机平台,XML 是数据交换的标准媒介,Android 中可以使用标准的XML生成器、解析器、转换器 API,对 XML 进行解析和转换。 XML,相关有DOM、SAX、JDOM、DOM4J、Xerce...

长平狐
2013/01/06
170
0
Android 创建与解析XML(六)—— 比较与使用

前面介绍了四种创建、解析XML的方式: 0、 Android 创建与解析XML(一)—— 概述 1、 Android 创建与解析XML(二)—— Dom方式 2、 Android 创建与解析XML(三)—— Sax方式 3、 Android ...

长平狐
2013/01/06
1K
0
Android读写XML(上)

注明:本文转自http://www.moandroid.com. 原文地址: http://www.moandroid.com/?p=508 XML 经常用作 Internet 上的一种数据格式,其文件格式想必大家都比较清楚,在这里我结合Android平台,...

晨曦之光
2012/03/01
398
0
android解析xml文档的各种方法

在Android平台上可以使用Simple API for XML(SAX) 、 Document Object Model(DOM)和Android附带的pull解析器解析XML文件。 下面是本例子要解析的XML文件: 文件名称:itcast.xml <?xml vers...

amigos_wu
2013/05/03
387
0
SVG前戏—让你的View多姿多彩

什么是SVG SVG的全称是Scalable Vector Graphics,叫可缩放矢量图形。是一种基于可扩展标记语言(XML)。它和位图(Bitmap)相对,SVG不会像位图一样因为缩放而让图片质量下降。它的优点在于...

codeGoogle
2018/08/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Cloud 笔记之Spring cloud config client

观察者模式它的数据的变化是被动的。 观察者模式在java中的实现: package com.hxq.springcloud.springcloudconfigclient;import org.springframework.context.ApplicationListener;i...

xiaoxiao_go
昨天
6
0
CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
8
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
10
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部