gpt4 book ai didi

c# - Parcelable List, List

转载 作者:行者123 更新时间:2023-11-30 00:12:33 24 4
gpt4 key购买 nike

我在使用 Parcelable 传递我类(class)内的列表时遇到问题。我的字符串(partNbr 和 partdescription)的值通过正常,但我丢失了写入和读取之间某处的列表。

我在使用 Serializable 或 JSON 路线时运气不佳,但如果有人可以提供一个很好的 c# 示例来说明我需要什么。

我愿意再试一次。我读错了值(value)观吗?任何帮助将不胜感激。相关代码贴在下方。

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
}

最佳答案

正如@Jason 所说,您可以尝试使用 JSON.NET 包。

I am trying that, but the object is coming out null in the next activity.

不要扩展 Java.Lang.Object,像这样修改您的 Part 类:

public class Part
{
public string partNbr { get; set; }
public string partDescription { get; set; }
public List<string> uomList { get; set; }
public List<int> qtyList { get; set; }
}

那么它应该可以工作了。

关于c# - Parcelable List<string>, List<int>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47929429/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com