I need to do some action on my views on a layout, and I use this code:
B4X:
For Each v As View In Activity.GetAllViewsRecursive
If v Is Button Then
Dim b As Button = v
' ........ execute some actions on button
ExecBtn(b)
End If
If v Is Label Then
Dim l As Label = v
' ........ execute some actions on label
ExecLbl(l)
End If
Next
what's wrong on it ??
I execute the program step by step (debug legacy mode) and:
- if "v" is a Button, it execute ExecBtn and ExecLbl (it's wrong)
(yes it is very strange, If v Is Label is True !!)
- if "v" is a Label, it execute only ExecLbl (it's right)
- if "v" is a EditText, it execute only ExecLbl (it's wrong, no need actions on EditText)
(If v Is Label is True !!)
Adesso non ricordo quali, ma alcune view derivano tutte dalla stessa classe base, per cui con la "funzione" "Is xxx" possono darti ugualmente true.
Ti conviene usare GetType(v).
No so, ma non credo; ricordo di aver fatto aggiungere una mia modifica e io sono iscritto dal 7 nov 2013 (troppo presto il 25 nov per il mio suggerimento, all'epoca).
Comunque, io ho riportato quella frase per specificare quello che non ricordavo esattamente circa la "funzione" Is XXX, ovvero quali tipi di view risultano dello stesso genere.
Ok, grazie, allora scriverò a klaus chiedendo.
Visto che volevo realizzare proprio una Sub per ridimensionare i layout, volevo prendere la routine di Klaus ed eventualmente adattarla alle mie esigenze.
Yes, many thanks for the link.
I have already seen also your "Scale code module", very interesting, but I want to know if 1.3 is the last version (25 November 2013)