Italian EditText e Tastiera numerica

MARCO C.

Active Member
Licensed User
Buonasera,

vorrei inserire in un panel un editTest cui l'utente dovrà inserire un codice , ma vorrei che mostrasse subito la tastiera numerica, senza costringere l'utente
a posizionarsi sul campo poter visualizzare la tastiera.
Per farla breve: esiste qualche modo di visualizzare il campo e la tastiera numerica ?

ho provato con "IME" o "Numpad"... ma nulla. Sono costretto a fare click sul campo per visualizzare la tastiera

Grazie
 

LucaMs

Expert
Licensed User
Longtime User
Il modo c'è ed è proprio l'uso di IME.

Mettiamo che tu abbia chiamato il tuo oggetto Ime1, dovrai eseguire:
B4X:
Ime1.ShowKeyboard(EditText1)

(Nel Designer imposta su Numbers o DecimalNumbers la proprietà Input Type della EditText1).

Ma quando chiamare la ShowKeyboard? Questo dipende da te. Potresti mettere quella riga, ad esempio, nell'evento Activity_Resume (e nell'Activity_Pause, dovresti mettere Ime1.HideKeyboard).

B4X:
Sub Globals
    Private Ime1 As IME
    Private EditText1 As EditText
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("layMain")
    Ime1.Initialize("Ime1")
End Sub

Sub Activity_Resume
    Sleep(0)
    Ime1.ShowKeyboard(EditText1)
End Sub

Sub Activity_Pause (UserClosed As Boolean)
    Ime1.HideKeyboard
End Sub

(Ho dovuto mettere quello Sleep(0), altrimenti la cosa non funziona bene; se metti l'app in pausa (tasto home) e poi la riapri, la tastiera appare solo per un attimo e poi scompare, senza quell'istruzione. Questo, chiaramente, solo se mostri la tastiera tramite l'evento Activity_Resume).
 

MARCO C.

Active Member
Licensed User
Il modo c'è ed è proprio l'uso di IME.

Mettiamo che tu abbia chiamato il tuo oggetto Ime1, dovrai eseguire:
B4X:
Ime1.ShowKeyboard(EditText1)

(Nel Designer imposta su Numbers o DecimalNumbers la proprietà Input Type della EditText1).

Ma quando chiamare la ShowKeyboard? Questo dipende da te. Potresti mettere quella riga, ad esempio, nell'evento Activity_Resume (e nell'Activity_Pause, dovresti mettere Ime1.HideKeyboard).

B4X:
Sub Globals
    Private Ime1 As IME
    Private EditText1 As EditText
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("layMain")
    Ime1.Initialize("Ime1")
End Sub

Sub Activity_Resume
    Sleep(0)
    Ime1.ShowKeyboard(EditText1)
End Sub

Sub Activity_Pause (UserClosed As Boolean)
    Ime1.HideKeyboard
End Sub

(Ho dovuto mettere quello Sleep(0), altrimenti la cosa non funziona bene; se metti l'app in pausa (tasto home) e poi la riapri, la tastiera appare solo per un attimo e poi scompare, senza quell'istruzione. Questo, chiaramente, solo se mostri la tastiera tramite l'evento Activity_Resume).
Grazie mille , provo subito .
grazie ancora
 

MARCO C.

Active Member
Licensed User
Il modo c'è ed è proprio l'uso di IME.

Mettiamo che tu abbia chiamato il tuo oggetto Ime1, dovrai eseguire:
B4X:
Ime1.ShowKeyboard(EditText1)

(Nel Designer imposta su Numbers o DecimalNumbers la proprietà Input Type della EditText1).

Ma quando chiamare la ShowKeyboard? Questo dipende da te. Potresti mettere quella riga, ad esempio, nell'evento Activity_Resume (e nell'Activity_Pause, dovresti mettere Ime1.HideKeyboard).

B4X:
Sub Globals
    Private Ime1 As IME
    Private EditText1 As EditText
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("layMain")
    Ime1.Initialize("Ime1")
End Sub

Sub Activity_Resume
    Sleep(0)
    Ime1.ShowKeyboard(EditText1)
End Sub

Sub Activity_Pause (UserClosed As Boolean)
    Ime1.HideKeyboard
End Sub

(Ho dovuto mettere quello Sleep(0), altrimenti la cosa non funziona bene; se metti l'app in pausa (tasto home) e poi la riapri, la tastiera appare solo per un attimo e poi scompare, senza quell'istruzione. Questo, chiaramente, solo se mostri la tastiera tramite l'evento Activity_Resume).

Funziona alla grande ... 👏👏👏

Grazie
 
Top