Android使用SAX解析XML(2)_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > Android使用SAX解析XML(2)

Android使用SAX解析XML(2)

 2013/12/17 15:09:11  MSTK  博客园  我要评论(0)
  • 摘要:school类包含了一个major列表,可以增加该列表的元素,以及返回该列表,还实现了Parcelable.Creator接口。packagecom.hzhi.my_sax;importjava.util.ArrayList;importandroid.os.Parcel;importandroid.os.Parcelable;publicclassschoolimplementsParcelable{publicstaticfinalStringtag_name="School"
  • 标签:android 使用 XML 解析

school类包含了一个major列表,可以增加该列表的元素,以及返回该列表,还实现了Parcelable.Creator接口

class="brush:java;gutter:true;">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个类都要重写toString()方法,否则返回的就不是数据内容,而是一长串数字。

发表评论
用户名: 匿名