我尝试制作一个Parcelable类,但 WriteToList
方法只需要 non generic List
,如何正确地将通用List传递给其他活动?
public class ParceableTextBlock : TextBlock, IParcelable
{
public override IList<IText> Components { get; }
protected ParceableTextBlock(IntPtr javaReference, JniHandleOwnership transfer) : base(javaReference,transfer)
{
}
public int DescribeContents()
{
return 0;
}
public void WriteToParcel(Parcel dest, [GeneratedEnum] ParcelableWriteFlags flags)
{
dest.WriteList(Components);
}
}
在尝试创建 Parcelable
类之前,我尝试了以下代码
List<TextBlock> blocks = new List<TextBlock>();
Intent drawviewIntent = new Intent(this, typeof(SomeActivity));
drawviewIntent.PutExtra("Blocks", blocks);
TextBlock类
[Register("com/google/android/gms/vision/text/TextBlock", DoNotGenerateAcw = true)]
public class TextBlock : Java.Lang.Object, IText, IJavaObject, IDisposable
{
protected TextBlock(IntPtr javaReference, JniHandleOwnership transfer);
public virtual Rect BoundingBox { get; }
public virtual IList<IText> Components { get; }
public virtual string Language { get; }
public virtual string Value { get; }
protected override IntPtr ThresholdClass { get; }
protected override Type ThresholdType { get; }
[Register("getCornerPoints", "()[Landroid/graphics/Point;", "GetGetCornerPointsHandler")]
public virtual Point[] GetCornerPoints();
}
1 回答
您可以添加名为Newtonsoft.Json的NuGet Pakeage,然后您可以像这样传递List:
你可以像这样获得List: