Spanish Como crear un teclado hexadecimal

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola

Puedes hacer dos cosas, o empleas el teclado estandar del movil y filtras lo que no sean letras hexadecimales, o te creas uno.

Crearte uno es bastante facil:
Creas un panel para colocar los botones y un EditText
Los botones y el EditText los haces Parent del panel para que queden incrustados en este.
Los botones le pones los numeros del 0 a la F
Creas un boton de borrar y otro de aceptar, el de cancelar si quieres lo puedes obviar ya que con el Esc vuelves atras

Lo que pulses en los botones lo pasas al EditText, para hacerlo es tan facil como decir:
B4X:
EditText.text = EditText.text & Boton.text ' al botón le has dados los valores del hexadecimal

Luego si te interesa convertir a decimal puedes hacerlo asi:
B4X:
' Si es un long
Dim numero As Long
numero = "0x" & EditText.text

' Si es un entero
Dim numero AsInt
numero = Bit.ParseInt("0x" & EditText.text, 16)

El boton de borrar es tan facil como esto:
B4X:
  if EditText.Text.Length>0 then EditText.Text = EditText.Text.SubString2(0, (EditText.Text.Length-1))

Bueno, espero haberte ayudado, quizas cuando tenga un rato seria interesante crear una libreria con un teclado hexa ;)

Saludos
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola:

Se me olvidó poner como filtrar el teclado soft :D

Empleando la libreria IME, puedes filtrar asi para que entre solo los números y letras hexa:

B4X:
Dim TecladoSoft As IME
TecladoSoft.SetCustomFilter(Nombre del EditText, Nombre del EditText.INPUT_TYPE_TEXT, "0123456789ABCDEF")
' si quieres que acepte las letras minusculas añadelas
TecladoSoft.SetCustomFilter(Nombre del EditText, Nombre del EditText.INPUT_TYPE_TEXT, "0123456789ABCDEFabcdef")

Saludos
 
Top