Parcelable
을 사용하여 내 수업에있는 목록을 전달하는 데 문제가 있습니다. 내 문자열 (partNbr 및 partdescription)에 대한 값은 ok를 통과하지만 쓰기 및 읽기 사이의 목록을 잃어 버리고 있습니다.목록 화 가능 목록 <string>, 목록 <int>
나는 Serializable 또는 JSON
경로를 사용하는 데 많은 행운이 없었지만, 누군가 내가 필요한 것의 좋은 C# 예제를 제공 할 수 있다면.
다시 시도해 볼 수 있습니다. 나는 값을 잘못 읽었습니까? 어떤 도움이라도 대단히 감사하겠습니다. 관련 코드는 아래에 게시됩니다.
public class Part : Java.Lang.Object, IParcelable
{
public string partNbr { get; set; }
public string partDescription { get; set; }
public List<string> uomList { get; set; }
public List<int> qtyList { get; set; }
#region IParcelable Implementation
private static readonly PartXParcelableCreator<Part> _creator =
new PartXParcelableCreator<Part>((parcel) => new Part(parcel));
[ExportField("CREATOR")]
public static PartXParcelableCreator<Part> GetCreator()
{
return _creator;
}
public Part(Parcel parcel)
{
partNbr = parcel.ReadString();
partDescription = parcel.ReadString();
parcel.ReadStringList(uomList);
parcel.ReadList(qtyList, null);
}
public int DescribeContents()
{
return 0;
}
public void WriteToParcel(Parcel dest, [GeneratedEnum] ParcelableWriteFlags flags)
{
//debugging here shows a count of 3 items in uomList and 6 in qtyList
dest.WriteString(partNbr);
dest.WriteString(partDescription);
dest.WriteStringList(uomList);
dest.WriteList(qtyList);
}
#endregion
}
public class PartXParcelableCreator<T> : Java.Lang.Object, IParcelableCreator
where T : Java.Lang.Object, new()
{
private readonly Func<Parcel, T> _createFunc;
public PartXParcelableCreator(Func<Parcel, T> createFromParcelFunc)
{
_createFunc = createFromParcelFunc;
}
#region IParcelableCreator Implementation
public Java.Lang.Object CreateFromParcel(Parcel source)
{
//tried debugging source values here, but List values are null at this point
return _createFunc(source);
}
public Java.Lang.Object[] NewArray(int size)
{
return new T[size];
}
#endregion
}
JSON.NET 패키지를 살펴 보는 것이 좋습니다. 그것은 매우 사용하기 쉽고 잘 문서화되어 있습니다. – Jason
저는 이것을 시도하고 있습니다 만, 다음 활동에서 객체가 null로 나오고 있습니다. 다음은 객체를 직렬화하는 코드입니다. int.PutExtra ("PART", JsonConvert.SerializeObject (myPart)); 내가 deserialize하는 곳 : Part inPart = JsonConvert.DeserializeObject (Intent.GetStringExtra ("PART"))); –
bashby82