Italian Activity_KeyPress info

GIS

Active Member
Licensed User
Ho un problema con la Sub Activity_KeyPress l'ho controllata e la sintassi è tutto ok ma viene sottolineata di giallo e nei log mi dice: Non tutti i punti chiave restituiscono un valore.(warning #2), cosa vuol dire? in effetti in tutti i moduli la situazione è la medesima.
 

Star-Dust

Expert
Licensed User
Deve restituire un valore boolean
B4X:
Sub Activity_KeyPress

Return True
End Sub
Restituendo true l'evento viene consumato, con false lo passa al sistema che per eseguire
 

GIS

Active Member
Licensed User
ok gzr. ma che differenza c'è tra return true e false. Un'altra cosa tornando indietro lancio starActivity ma perché non me la esegue correttamente, me la ripropone senza nessun cambiamento cosa che invece dovrebbe fare. Mi spiego da un layout1 passo al layout2 scrivo in un file che poi tornado indietro al layout1 dovrebbe rendermi i tasti non visibile. Invece niente.Cosa che accade se rilancio app e entro nel layout1
 

Star-Dust

Expert
Licensed User
ok gzr. ma che differenza c'è tra return true e false. Un'altra cosa tornando indietro lancio starActivity ma perché non me la esegue correttamente, me la ripropone senza nessun cambiamento cosa che invece dovrebbe fare. Mi spiego da un layout1 passo al layout2 scrivo in un file che poi tornado indietro al layout1 dovrebbe rendermi i tasti non visibile. Invece niente.Cosa che accade se rilancio app e entro nel layout1
La differenza te l'ho spiegata, se metti false segue il normale corso quando clicchi un tasto.

True invece consuma l'evento e dopo aver eseguito le tue istruzioni non esegue le istruzioni del sistema per quel tasto

Per il resto non ho capito niente, apri un altro thread
 

GIS

Active Member
Licensed User
B4X:
Sub Activity_KeyPress (Keycode as int) As Boolean
if KeyCode = KeyCodes.KEYCODE_BACK Then
       Activity.finish
end if
Return True
End Sub
perché non mi chiude l'activity, ma torna i dietro?
 
Last edited:

Star-Dust

Expert
Licensed User
B4X:
Sub Activity_KeyPress (Keycode as int) As Boolean
    if KeyCode = KeyCodes.KEYCODE_BACK Then
           ExitApplication
    end if
    Return True
End Sub
 

Star-Dust

Expert
Licensed User
Or use this
B4X:
Sub ExitApplication2
   Dim jo As JavaObject
   jo.InitializeContext
   jo.RunMethod("finishAffinity", Null)
End Sub
 

GIS

Active Member
Licensed User
ok perfetto col secondo metodo ok. col primo continuava a ritornare indietro... grazie
 
Top