B4J Code Snippet Access ENum's

stevel05

Expert
Licensed User
Sub Name: ENumClass

Description: This Class allows access to Java Enum's. If you're dabbling with JavaObject, it won't be too long before you come across an ENum. Some methods that require Enums will accept Strings, but others insist on the Enum Object. With this class you can get the Enum Object.

B4X:
'Class module
Sub Class_Globals
    Private EnumJO As JavaObject
End Sub

'Initializes the object. You can add parameters to this method if needed.
Public Sub Initialize(ClassName As String)
    EnumJO.InitializeStatic(ClassName)
End Sub
'Return the Constant for a given Constant String Text
Sub ValueOf(Text As String) As Object
    Return EnumJO.RunMethod("valueOf",Array(Text))
End Sub
'Returns an array containing the constants of this enum type, in the order they are declared.
Sub Values As Object()
    Return EnumJO.RunMethod("values",Null)
End Sub
'Returns an array containing a string representation of the constants of this enum type, in the order they are declared.
Sub ValueStrings As String()
    Dim ValueObjects() As Object = Values
    Dim JO As JavaObject
    Dim ReturnStrings(ValueObjects.Length) As String
    For i = 0 To ValueObjects.Length - 1
        JO = ValueObjects(i)
        ReturnStrings(i) = JO.RunMethod("toString",Null)
    Next
    Return ReturnStrings
End Sub
Usage:
B4X:
    Dim EPos As ENumClass
    EPos.Initialize("javafx.geometry.Pos")
    Log(EPos.ValueOf("CENTER"))
    Log(GetType(EPos.ValueOf("CENTER")))

Depends On: JavaObject

Tags: Enum B4j
 
Last edited:
Top