- Presentación.
Basic4Android, no dispone de la ventana de entrada de datos InputBox, pero podemos crearlo mediante la librería Dialogs.
El tutorial de la librería Dialogs lo encontramos en:
http://www.basic4ppc.com/android/help/dialogs.html
El tutorial de la utilización de archivos y directorios lo encontramos en:
http://www.basic4ppc.com/android/help/files.html
En el tutorial anterior vimos distintas posibilidades de la librería Dialogs, ahora vamos a crear un InputBox.
__________________________
1.- Entrada de datos mediante ventana. InputBox.
Al pulsar el botón "Pulsa" nos sale una ventana en donde podemos escribir un dato.
Ventana de introducción de datos
|
|
En este proyecto los controles se crean en el código, no hace falta Layout
Cargamos la librería: Dialogs
|
_____________________
- Comentarios.
Al pulsar el botón sale una ventana emergente.
Si escribimos algo y pulsamos el botón "Cambiar", cambia el texto de la etiqueta.
Si pulsamos "Borrar", borra el texto de la etiqueta.
Si pulsamos "Cancelar", no hace ninguna operación en la etiqueta.
ret = -1 se produce cuando pulsamos el primer botón.
ret = -3 se produce cuando pulsamos el segundo botón.
ret = -2 se produce cuando pulsamos el tercer botón.
Si no queremos que salga un botón ponemos solo comillas: ""
ret = Id.Show("Escribe un texto, pulsa botones", "Título", "Cambiar", "Borrar", "", Null)
En vez de Null, podemos poner una imagen bmp.
Código del Basic4Android
|
Sub Process_Globals
' Juan Antonio Villapando
' juana1991@yahoo.com
' junio 2013
End Sub
Sub Globals
Dim boton As Button
Dim etiqueta As Label Dim ret As String
End Sub
Sub Activity_Create(FirstTime As Boolean)
' Crea Botón (Button)
boton.Initialize("boton")
boton.TextColor = Colors.Red
boton.Text = "Pulsa"
Activity.AddView(boton, 0dip, 10dip, 100%x, 10%y)
' Crea etiqueta (Label)
etiqueta.Initialize("etiqueta")
etiqueta.TextSize = 20
etiqueta.Color=Colors.Red
etiqueta.Gravity = Gravity.CENTER
etiqueta.Text = "Label es Etiqueta"
Activity.AddView(etiqueta, 20dip, 80dip, 270dip, 40dip)
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub boton_Click
Dim Id As InputDialog
Id.Hint = "Escribe algo"
Id.HintColor = Colors.ARGB(196, 255, 140, 0)
ret = Id.Show("Escribe un texto, pulsa botones", "Título", "Cambiar", "Borrar", "Cancelar", Null)
' Primer botón -1
If ret = -1 Then
etiqueta.Text = Id.Input
ToastMessageShow("Has pulsado: Cambiar", False)
End If
' Tercer botón -2
If ret = -2 Then
ToastMessageShow("Has pulsado: Cancelar", False)
End If
' Segundo botón -3
If ret = -3 Then
etiqueta.Text = ""
ToastMessageShow("Has pulsado: Borrar", False)
End If
End Sub
|
__________________________
2.- Subrutina InputBox.
En los tutoriales de B4A, concretamente en este, muestran una Subrutina llamada InputBox que al llamarla funciona de una forma parecida a la de Visual Basic.
'Following is a Sub from Pfriemler which acts like InputBox:
Sub InputBox(Prompt As String, Title As String, Default As String, Hint As String) As String
Dim Id As InputDialog
Id.Hint = Hint
Id.Input = Default
ret = Id.Show(Prompt, Title, "OK", "","Abbrechen", Null)
If ret = -1 Then Return Id.Input Else Return ""
End Sub
Voy a adaptarla en el siguiente código.....
Código del Basic4Android
|
Sub Process_Globals
' Juan Antonio Villapando
' juana1991@yahoo.com
' junio 2013
End Sub
Sub Globals
Dim boton As Button
Dim etiqueta, etiqueta2 As Label
Dim ret As String
End Sub
Sub Activity_Create(FirstTime As Boolean)
' Crea Botón (Button)
boton.Initialize("boton")
boton.TextColor = Colors.Red
boton.Text = "Pulsa"
Activity.AddView(boton, 0dip, 10dip, 100%x, 10%y)
' Crea etiqueta (Label)
etiqueta.Initialize("etiqueta")
etiqueta.TextSize = 20
etiqueta.Color=Colors.Red
etiqueta.Gravity = Gravity.CENTER
etiqueta.Text = "Label es Etiqueta"
Activity.AddView(etiqueta, 20dip, 80dip, 270dip, 40dip)
' Crea etiqueta (Label)
etiqueta2.Initialize("etiqueta2")
etiqueta2.TextSize = 20
etiqueta2.Color=Colors.Red
etiqueta2.Gravity = Gravity.CENTER
etiqueta2.Text = "Label es Etiqueta2"
Activity.AddView(etiqueta2, 20dip, 130dip, 270dip, 40dip)
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub boton_Click
' En las "", se puede poner un valor por defecto
etiqueta.Text = InputBox("Escribe tu nombre", "NOMBRE", "", "Escribe aquí")
etiqueta2.Text = InputBox("Escribe tu edad", "EDAD", "", "Escribe aquí")
End Sub
Sub InputBox(Prompt As String, Title As String, Default As String, Hint As String) As String
Dim Id As InputDialog
Dim ret As String
Id.HintColor = Colors.ARGB(196, 255, 140, 0)
Id.Hint = Hint ' Valor escrito en el casillero
Id.Input = Default ' Valor por defecto en el casillero
' Cambiar, Borrar, Cancelar son los botones, si quieres quitar alguno: ""
ret = Id.Show(Prompt, Title, "Cambiar", "Borrar", "Cancelar", Null)
If ret = -1 Then Return Id.Input else Return "" ' El valor del casillero es la salida
' If ret = -3 Then Return ""
' If ret = -2 Then Return
End Sub
|
- El botón de Cancelar también borra la etiqueta.
Para que al pulsar Cancelar mantenga lo que tenía en el casillero, prueba esto...
etiqueta.Text = InputBox("Escribe tu nombre", "NOMBRE", etiqueta.Text, "Escribe aquí")
etiqueta2.Text = InputBox("Escribe tu edad", "EDAD", etiqueta2.Text, "Escribe aquí")
Sub InputBox(Prompt As String, Title As String, Default As String, Hint As String) As String
Dim Id As InputDialog
Dim ret, inicial As String
Id.HintColor = Colors.ARGB(196, 255, 140, 0)
Id.Hint = Hint ' Valor escrito en el casillero
' Id.Input = Default ' Valor por defecto en el casillero
' Cambiar, Borrar, Cancelar son los botones, si quieres quitar alguno: ""
ret = Id.Show(Prompt, Title, "Cambiar", "Borrar", "Cancelar", Null)
If ret = -1 Then Return Id.Input else Return "" ' El valor del casillero es la salida
' If ret = -3 Then Return ""
' If ret = -2 Then Return
End Sub
________________________________