Android枚举实现Parcelable接口

枚举类实现Parcelable的写法如下:

public enum MyEnum implements Parcelable {    

       FIRST(1), SECOND(2);    

       private int mValue;    

       MyEnum(int value) {        
             this.mValue = value;   
        }    

        @Override    
        public void writeToParcel(Parcel dest, int flags) {     
              dest.writeInt(mValue);    
        }   
 
        @Override    
        public int describeContents() {        
              return 0;    
        }   
 
        public static final Creator<MyEnum> CREATOR = new Creator<MyEnum>() {        
                @Override        
                 public MyEnum createFromParcel(Parcel in) {     
                     return MyEnum.values()[in.readInt()];       
         }    
    
        @Override        
        public MyEnum[] newArray(int size) {            
               return new MyEnum[size];        
              }    
        };
}

当枚举类为一个类的成员变量,并且该类也要实现Parcelable接口时,则先让枚举类实现Parcelable接口,

public class MyClass implements Parcelable {   
 
     private String name;    

     private int age;    

    private MyEnum myEnum;  
  
    protected MyClass(Parcel in) {        
        name = in.readString();        
        age = in.readInt();        
        myEnum = in.readParcelable(MyEnum.class.getClassLoader()); 
   }    

    @Override    
    public void writeToParcel(Parcel dest, int flags) {   
        dest.writeString(name);        
        dest.writeInt(age);        
        dest.writeParcelable(myEnum, flags);   
     }    
    @Override   
   public int describeContents() {        
        return 0;    
   }  
  
  public static final Creator<MyClass> CREATOR = new Creator<MyClass>() {        
      @Override        
      public MyClass createFromParcel(Parcel in) {            
          return new MyClass(in);        
      }        
      @Override        
      public MyClass[] newArray(int size) {            
        return new MyClass[size];        
       }    
    };
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,240评论 25 709
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,906评论 18 399
  • 5. 最佳实践 好了终于要点讲自己的东西了,有点小激动。下面这些仅表示个人观点,非一定之规,各位看官按需取用,有说...
    SnowDragonYY阅读 6,963评论 4 36
  • 本系列导航:剑指offer(第二版)java实现导航帖 面试题68:树中两个节点的最低公共祖先 题目要求:输入一棵...
    ryderchan阅读 7,717评论 0 2
  • 未作完的画 是空白 未说出的话 是空白 未见过的人 是空白 未写完的诗 是空白 2013.3
    阿非利加豬阅读 832评论 0 0