Spanish Escribir mayusculas al dicta por voz.

TheFalcon

Active Member
Licensed User
Longtime User
Buenas, e estado liado con el curro y ahora retomo los proyectos , tngo una duda simple pero que no se solventa.

Tengo puesto en una aplicación que cuando escribes lo haga en mayúsculas por defecto.Pero si dicto por voz desde el micrófono que sale al lado del teclado me escribe en minúscula, hay algun modo de hacer que lo haga mayusculas?.

Un saudo
 

TheFalcon

Active Member
Licensed User
Longtime User
gracias probare haber que tal aunque el edittext ya lo tengo en mayusculas, no te permite escribir minusculas, pero al dictar por voz si lo escribe, no obstante pruebo eso y comento
 

dar2o3

Active Member
Licensed User
Longtime User
Otra opción es usar el reconocimiento de voz tu mismo un ejemplo:

B4X:
'Activity module
Sub Process_Globals
    Dim VR As VoiceRecognition
    Dim texto as string
 
End Sub

Sub Globals

End Sub

Sub Activity_Create(FirstTime As Boolean)
    If FirstTime Then
        VR.Initialize("VR")
    End If

    Activity.LoadLayout("1")
    If VR.IsSupported Then
        ToastMessageShow("Voice recognition is supported.", False)
    Else
        ToastMessageShow("Voice recognition is not supported.", True)
    End If
    VR.Prompt = "Say your message"
End Sub

Sub Button1_Click
    VR.Listen 'calls the voice recognition external activity. Result event will be raised.
End Sub

Sub VR_Result (Success As Boolean, Texts As List)
    If Success = True Then
        ToastMessageShow(Texts.Get(0), True)
     texto=ucase((Texts.Get(0)) 'Ponemos el texto en mayúsculas
     'aqui colocas el texto en el textbox o edittext o donde quieras
    End If
End Sub


Fuente:

https://www.b4x.com/android/forum/threads/voice-recognition-example.7317/
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola TheFalcon

Si no quieres controlar tu el reconocedor de voz, solo tu EditText, puedes hacer lo que te pongo de ejemplo, es un código muy rebuscado pero funciona.

B4X:
Sub Globals
Dim EstoyCambiando = False As Boolean
' ...............
' ...............
' ...............

Sub EditText1_TextChanged (Old As String, New As String)

  If EstoyCambiando Then Return ' para que no entre cuando cambies a mayúsculas

   EstoyCambiando = True
   EditText1.Text = New.ToUpperCase
   EditText1.SelectionStart = EditText1.Text.Length
   EstoyCambiando = False

End Sub

Saludos
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…