Xamarin Android Mapping field Java.Lang.Enum to C# Enum

135 Views Asked by At

I have a problem with converting Java enum to C# enum when binding a Java native library. I have already tried:

I have class Receipt and enum Status. Enum Status is nested inside Receipt class(Java code):

public class Receipt {

        public enum Status {
        created,
        processing,
        declined,
        approved,
        expired,
        reversed;

    }
    public final Status status; 
}

Class Receipt has a field with Status type. When I try to build it with enum mapping it doesn't generate properly. It generates class Status instead of enum(public sealed partial class Status : global::Java.Lang.Enum) and what is more important it doesn't generate field status for class Receipt at all(public final Status status).

EnumFields.xml

<enum-field-mappings>
    <mapping jni-class="com/cloudipsp/android/Status" clr-enum-type="Com.Cloudipsp.Android.Status">
        <field jni-name="created" clr-name="created" value="0" />
        <field jni-name="processing" clr-name="processing" value="1" />
        <field jni-name="declined" clr-name="declined" value="2" />
        <field jni-name="approved" clr-name="approved" value="3" />
        <field jni-name="expired" clr-name="expired" value="4" />
        <field jni-name="reversed" clr-name="reversed" value="5" />
    </mapping>
</enum-field-mappings>```

I would be grateful for any help.
0

There are 0 best solutions below