Italian Simulare la pressione del tasto back

Angelo Messina

Active Member
Licensed User
Longtime User
Salve da un paio di giorni sono fermo su un intoppo, ho scritto (tentando) una app che dopo aver proposto 4 image ne tocchi una che dopo la ingrandisco aspetto 2 secondi ma non torna dalla sub img_click , va avanti con le altre successive 4 solo se presso in tasto back invece di girare con le successive in automatico. Ho preso spunto da FlickrViewer.b4a
Ho b4a da alcuni giorni.
Grazie tanto
 

MarcoRome

Expert
Licensed User
Longtime User
Come da oggetto:

B4X:
Sub Activity_KeyPress (KeyCode As Int) As Boolean 'return true if you want to consume the event or False if you want STOP
   If KeyCode = KeyCodes.KEYCODE_BACK Then Return True
End Sub
 

Angelo Messina

Active Member
Licensed User
Longtime User
Ciao il problema che devo simulare la pressione del tasto back e non controllarlo, in sostanza il tasto deve essere pressato in automatico.
Altrimenti non so come uscirne fuori dalla sub che aspetta questo evento per rilanciare la Sub Activity_Resume per ricominciare a mostrare image
incrementando un indice.
 

MarcoRome

Expert
Licensed User
Longtime User
Ciao il problema che devo simulare la pressione del tasto back e non controllarlo, in sostanza il tasto deve essere pressato in automatico.
Altrimenti non so come uscirne fuori dalla sub che aspetta questo evento per rilanciare la Sub Activity_Resume per ricominciare a mostrare image
incrementando un indice.
Non capisco il problema..dovresti esporlo in modo chiaro, della serie...che cosa devi fare??
 

Angelo Messina

Active Member
Licensed User
Longtime User
Facendo girare il programma dopo aver visiualizzato 4 immagini ne selezione con un click uno che viene mostrato in un altra activity e si mette in attesa di un
evento back click. se appunto presso back torna alla Sub Activity_Resume per ricominciare a mostrare altre 4 image e via dicendo. Ora io invece vorrei ottenere dopo
attesa di alcune secondi la pressione del tasto back in automatico, per rilanciare il ciclo.
 

MarcoRome

Expert
Licensed User
Longtime User
Puoi effettuare la stessa simulazione con un Timer....
B4X:
Dim timer1 as Timer

'Nella nuova activity nel create
....
timer1.Initialize("timer1", 3000) 'Dura 3 secondi 
timer1.Enabled = True
.....

Sub timer1_.....
    Activity.Finish
End Sub

In questo modo, apri la nuova finestra mostri l'immagine per 3 secondi e in automatico si chiude la stessa...ritornando alla activity precedente che di conseguenza scatena il resume
 

Angelo Messina

Active Member
Licensed User
Longtime User
nulla da fare genera un errore bloccante

L'applicazione blac si è bloccata in modo anomalo.
 

MarcoRome

Expert
Licensed User
Longtime User
angelo avrai scritto male il codice. se incolli lo stesso gli dò un'occhiata
 

Angelo Messina

Active Member
Licensed User
Longtime User
Sub ImmagineSingola(bmp As Bitmap)

Img1.Bitmap=(bmp)
Dim timer1 As Timer
timer1.Initialize("timer1_Attesa", 3000) 'Dura 3 secondi
timer1.Enabled = True

' Dopo ho tentato Questo Starter.csu.CallSubDelayedPlus(Modulo1,"QuattroImmagini",2000) con lo stesso risultato
End Sub

Sub timer1_Attesa
Activity.Finish​
End Sub
 

MarcoRome

Expert
Licensed User
Longtime User
Sub ImmagineSingola(bmp As Bitmap)

Img1.Bitmap=(bmp)
Dim timer1 As Timer
timer1.Initialize("timer1_Attesa", 3000) 'Dura 3 secondi
timer1.Enabled = True

' Dopo ho tentato Questo Starter.csu.CallSubDelayedPlus(Modulo1,"QuattroImmagini",2000) con lo stesso risultato
End Sub

Sub timer1_Attesa
Activity.Finish​
End Sub


Angelo è sbagliato l'evento "timer1_Attesa" NON ESISTE dove lo hai preso ??

L'evento è:

B4X:
Sub timer1_Tick
timer1.Enabled = False
Activity.Finish
End Sub
 

Nikeddy

Active Member
Licensed User
Longtime User
B4X:
Sub Activity_KeyPress (KeyCode As Int) As Boolean 'return true if you want to consume the event or False if you want STOP
   If KeyCode = KeyCodes.KEYCODE_BACK Then Return True
End Sub

se metto il codice, per far in modo che torni indietro all'ultima schermata, non funziona.
 

Angelo Messina

Active Member
Licensed User
Longtime User
Io ho risolto con un timer dove vuoi l'evento
Tipo:

......
timer1.Initialize("timer1",3000)
timer1.Enabled = True
End Sub

Sub timer1_Tick
timer1.Enabled = False
Activity.Finish
End Sub
 

MarcoRome

Expert
Licensed User
Longtime User
B4X:
Sub Activity_KeyPress (KeyCode As Int) As Boolean 'return true if you want to consume the event or False if you want STOP
   If KeyCode = KeyCodes.KEYCODE_BACK Then Return True
End Sub

se metto il codice, per far in modo che torni indietro all'ultima schermata, non funziona.

Nel senso che non chiude ?
elimina il Return True
 

MarcoRome

Expert
Licensed User
Longtime User
Sei sicuro che non chiudi l'activity precedente ??
In questo caso ovviamente non puoi vederla.
Se incolli un pò di codice forse ci capiamo meglio
 

MarcoRome

Expert
Licensed User
Longtime User
Mi metti queste due log.... i valori tornano uguali ??

B4X:
Sub AStream_NewData (Buffer() As Byte)
    DatiLetti = (BytesToString( Buffer, 0, Buffer.Length, "UTF8") )
    PrendiValori(DatiLetti)
Log("Valore 1 Orginale: " & DatiLetti)
End Sub

Sub PrendiValori( Contenuto As String )
    ValoreGSR = Contenuto.Trim
Log("Valore 2: " & ValoreGSR)
End Sub
 

MarcoRome

Expert
Licensed User
Longtime User
In ogni caso per ogni problema diverso dovresti aprire un nuovo thread....sei partito con la simulazione del tasto back...e ora parliamo di altro. Questo anche per facilitare eventuali ricerche da parte dei nostri colleghi.
 
Top