Salve a tutti ho bisogno di un msgbox chieda una conferma all'utente, il quale dovrà rispondere "si" o "no". Nel caso rispondesse "si" richiama una funzione.
Ho provato con msgbox2, però ho questo problema:
La prima volta si apre la msgbox premo "si" e cambia activity. Poi tramite un button ritorno in quell'activity, però se premo nuovamente "si" non aspetta la risposta dalla msgbox2 e va avanti, quindi poi quando scelgo "si" o "no" non fa niente. (Ho potuto vedere questo tramite debug)
da quello che dici sembra non essere un problema di MsgBox2 ma di flusso di programma che per qualche ragione non passa proprio per l'istruzione del MsgBox2 ma viene proprio saltata, magari per qualche variabile non reinizzializzata o altro, per cui direi proprio di eseguire un bel passo-passo del programma e capire il perchè.
Fatti una bella msg box da solo: un panel a tutto schermo, trasparente, che contiene un altro panel con tutti i testi e tasti che vuoi con gli eventi relativi.
non sò se ho capito bene, ma io ti consiglio di usare il MsgBox2 +- in questo modo, mai eseguirlo direttamente.
B4X:
Sub Activity_Create(FirstTime As Boolean)
'Do not forget to load the layout file created with the visual designer. For example:
'Activity.LoadLayout("Layout1")
CallSubDelayed(Me, "getMsgbox")
Return
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub getMsgbox
Dim ret As Int = Msgbox2("Message", "Titel", "Si", "No", "Non so :)", Null)
If ret = DialogResponse.POSITIVE Then
'fai quel che vuoi
End If
End Sub
Motivo? Per non bloccare il thread? In questo caso non risolvi, perché il msgbox lo esegui lo stesso.
Se poi metti il Return nella Activity_Create a quel punto tutta l'Activity servirà solo a quello, visualizzare il msgbox, penso (senza nemmeno chiudere l'Activity definitivamente).
Poi tramite un button ritorno in quell'activity, però se premo nuovamente "si" non aspetta la risposta dalla msgbox2 e va avanti, quindi poi quando scelgo "si" o "no" non fa niente.
mi sembra che stiamo andando fuori tema, poichè (da quel che ho capito io) lui non ha il problema di fermare il thread o no, ha il problema che la seconda volta che passa per quel punto di programma la MsgBox non si apre, almeno così avevo capito io