Italian Focus

moore_it

Well-Known Member
Licensed User
Longtime User
Ciao a tutti,
avrei bisogno di disattivare il focus attivato via TAB su tutti i controlli esclusi i TextFields.
Secondo voi è possibile ?

Grazie
 

LucaMs

Expert
Licensed User
Longtime User
Prova:

B4X:
    For Each vw As View In Activity.GetAllViewsRecursive
    If Not(vw Is EditText) Then
        SetFocusable(vw, False)
    End If
 Next

B4X:
Sub SetFocusable(Vw As View, Focusable As Boolean)
    Dim obj1 As Reflector
    obj1.Target = Vw
    If Focusable Then
        obj1.RunMethod2("setFocusable", "True", "java.lang.boolean")
    Else
        obj1.RunMethod2("setFocusable", "False", "java.lang.boolean")
    End If
End Sub
 

moore_it

Well-Known Member
Licensed User
Longtime User
Ultima cosa se può servire ...
In b4J nel codice di LucaMs va modificata la view in node e il metodo da usare è setFocusTraversable che è comune a tutti gli oggetti.

B4X:
For Each n As Node In MainForm.RootPane.GetAllViewsRecursive
       If Not(n Is TextField) Then
           Log(n)
           Globals.SetFocusable(n, False)
       End If
Next

B4X:
Sub SetFocusable(n As Node, Focusable As Boolean)
    Dim obj1 As Reflector
    obj1.Target = n
    If Focusable Then
        obj1.RunMethod2("setFocusTraversable", "True", "java.lang.boolean")
    Else
        obj1.RunMethod2("setFocusTraversable", "False", "java.lang.boolean")
    End If
End Sub
 
Top