zoukankan      html  css  js  c++  java
  • Android使用SAX解析XML(2)

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

  • 相关阅读:
    字符编码ANSI和ASCII区别、Unicode和UTF-8区别
    《非暴力沟通》读后感
    软件测试
    报表导出测试点
    如何设计测试用例
    国密算法sm2.sm3.sm4
    免杀原理与实践
    SQL注入攻击
    网络攻防实践 第十周作业
    网络攻防实践第九周
  • 原文地址:https://www.cnblogs.com/mstk/p/3478415.html
Copyright © 2011-2022 走看看