2017-01-11 23 views
-2

我没有让我的类Parcelable,我不知道为什么为什么我的Parcelable Creator不能正常工作?

public class Set : Java.Lang.Object, IParcelable 
{ 
    public string[] jugador { get; set; } = new string[2]; 
    public bool[] jugado { get; set; } = new bool[1] { false }; 
    public int[] games { get; set; } = new int[2] { 0, 0 }; 
    public int[] noforzados { get; set; } = new int[2] { 0, 0 }; 
    public int[] aces { get; set; } = new int[2] { 0, 0 }; 
    public int[] winners { get; set; } = new int[2] { 0, 0 }; 
    public int[] doblefaltas { get; set; } = new int[2] { 0, 0 }; 
    public int[] primeros { get; set; } = new int[2] { 0, 0 }; 
    public int[] primerosGanados { get; set; } = new int[2] { 0, 0 }; 
    public int[] segundos { get; set; } = new int[2] { 0, 0 }; 
    public int[] segundosGanados { get; set; } = new int[2] { 0, 0 }; 

    public int DescribeContents() 
    { 
     return 0; 
    } 

    public void WriteToParcel(Parcel parcel, ParcelableWriteFlags flags) 
    { 
     parcel.WriteStringArray(jugador); 
     parcel.WriteBooleanArray(jugado); 
     parcel.WriteIntArray(games); 
     parcel.WriteIntArray(noforzados); 
     parcel.WriteIntArray(aces); 
     parcel.WriteIntArray(winners); 
     parcel.WriteIntArray(doblefaltas); 
     parcel.WriteIntArray(primeros); 
     parcel.WriteIntArray(primerosGanados); 
     parcel.WriteIntArray(segundos); 
     parcel.WriteIntArray(segundosGanados); 
    } 

    public Set (string[] Jugador, int[] Games, int[] NoForzados, int[] Aces, int[] Winners, int[] DobleFaltas, int[] Primeros, int[] PrimerosGanados, int[] Segundos, 
     int[] SegundosGanados) 
    { 
     jugador = Jugador; games = Games; noforzados = NoForzados; aces = Aces; winners = Winners; doblefaltas = DobleFaltas; primeros = Primeros; 
     primerosGanados = PrimerosGanados; segundosGanados = SegundosGanados; 
    } 


    public class SetParcelableCreator : Java.Lang.Object, IParcelableCreator 
    { 
     public Java.Lang.Object CreateFromParcel(Parcel parcel) 
     { 
      return new Set(parcel.ReadStringArray(), parcel.ReadBooleanArray(), parcel.ReadIntArray(), parcel.ReadIntArray(), parcel.ReadIntArray(), parcel.ReadIntArray() 
        , parcel.ReadIntArray(), parcel.ReadIntArray(), parcel.ReadIntArray(), parcel.ReadIntArray(), parcel.ReadIntArray(); 

     } 

     public Java.Lang.Object[] NewArray(int size) 
     { 
      return new Java.Lang.Object[size]; 
     } 
    } 


    [ExportField("CREATOR")] 
    public static SetParcelableCreator InitializeCreator() 
    { 
     return new SetParcelableCreator(); 
    } 
} 

显然,我在每一个ReadBlahArray()得到一个编译错误,但我不知道什么是错。

public class SetParcelableCreator : Java.Lang.Object, IParcelableCreator 
{ 
    public Java.Lang.Object CreateFromParcel(Parcel parcel) 
    { 
     return new Set(parcel.ReadStringArray(), parcel.ReadBooleanArray(), parcel.ReadIntArray(), parcel.ReadIntArray(), parcel.ReadIntArray(), parcel.ReadIntArray() 
       , parcel.ReadIntArray(), parcel.ReadIntArray(), parcel.ReadIntArray(), parcel.ReadIntArray(), parcel.ReadIntArray(); 

回答

0
return new Set(parcel.ReadStringArray(), parcel.ReadBooleanArray()... 

parcel.ReadBooleanArray() 

你必须在构造函数中没有布尔数组

public Set (
    string[] Jugador, 
    int[] Games, 
    int[] NoForzados, 
    int[] Aces, 
    int[] Winners, 
    int[] DobleFaltas, 
    int[] Primeros, 
    int[] PrimerosGanados, 
    int[] Segundos, 
    int[] SegundosGanados) 

你忘了设置jugado

+0

是的,我确实忘了设置它。哇,这只是一件小事,但我无法找到它。谢谢!它不再有编译错误 –

+0

很酷。您可以使用帖子旁边的复选标记显示您的感谢以接受答案。 –