Italian EditText strano comportamento

Moryz

Member
Mi succede una cosa strana......... se sto scrivendo in una EditText e giro il tablet, questo si vuota.........

si puo' evitare?????

grazie!
 
D

Deleted member 103

Guest
Ciao Moryz,

dichiara una variabile nel "Sub Globals", esempio: Dim strEdittext as String

e poi scrivi questo:
B4X:
Sub Activity_Pause (UserClosed As Boolean)
   strEdittext=EditText.text
End Sub

Sub Activity_Resume
   EditText.text=strEdittext
End Sub

Ciao,
Filippo
 

caccas

Member
Licensed User
Longtime User
Rotazione

Mi succede una cosa strana......... se sto scrivendo in una EditText e giro il tablet, questo si vuota.........

si puo' evitare?????

grazie!

Ciao Moriz,

Inoltre è possibile impedire la rotazione, utilizzando il LIb Phone.

Utilizzare Dim PHONE1 As Phone

Phone1.SetScreenOrientation (x)

Dove per assegnare il valore di x è un ritratto e del paesaggio è 0.

Cio Carlos
 

Moryz

Member
No, non funziona, la rotazione vuota la edittext......
ma scusa le 2 activity non serve per quando va in stand-by??

P.S. La rotazione nell'app mi fa comodo e la vorrei tenere!


 

timo

Active Member
Licensed User
Longtime User
Se non salvi in un file, quando cambi orientamento perdi tutto.
Questo funziona:
B4X:
'Activity module
Sub Process_Globals
   
End Sub

Sub Globals
   
    Dim EditText1 As EditText
      Dim testo As String 
   
End Sub

Sub Activity_Create(FirstTime As Boolean)

Activity.LoadLayout("1") 'un Layout con una sola EditText1

End Sub

Sub Activity_Resume
'se c'era qualcosa nella editText1, Pause l'ha salvata
If File.Exists(File.DirInternal,"stocco.txt") Then
   testo=(File.ReadString(File.DirInternal,"stocco.txt"))
   EditText1.Text=testo
Else
   testo=EditText1.Text 'devo comunque inizializzare qui la variabile 'testo'
End If

End Sub

Sub Activity_Pause (UserClosed As Boolean)
'salvo quello che c'è nella EditText1
testo=EditText1.text
File.WriteString(File.DirInternal, "stocco.txt", testo)

End Sub

Con più caselle di testo puoi salvare una List/Map e poi leggerla. Ciao.
 
Last edited:
D

Deleted member 103

Guest
No, non funziona, la rotazione vuota la edittext......
ma scusa le 2 activity non serve per quando va in stand-by??

Scusa ma l'avevo scritto così dalla memoria, così però dovrebbe funzionare.
B4X:
Sub Process_Globals
    Dim strEdittext As String
End Sub

Sub Globals 
     Dim EditText1 As EditText    
End Sub

Sub Activity_Pause (UserClosed As Boolean)
   If UserClosed Then
      strEdittext=""
   Else
      strEdittext=EditText1.text
   End If
 End Sub

Sub Activity_Resume
    EditText1.text=strEdittext
End Sub
 

timo

Active Member
Licensed User
Longtime User
Vero; Filippo è stato più concreto. Il mio codice va un po' troppo oltre e recupera il contenuto della casella anche al riavvio completo del programma. Effettivamente basta mettere la variabile in Process invece che in Global
 
Last edited:

satomware

Member
Licensed User
Longtime User
Ciao a tutti!

Scusate, ma non sarebbe meglio usare la libreria StateManager?

La trovi qui

Personalmente trovo sia un modo più facile e personalizzabile di gestire la rotazione della schermo, oltre a permettere di salvare le impostazioni dell'applicazione.
 
Last edited:
Cookies are required to use this site. You must accept them to continue using the site. Learn more…