2010-07-20 15 views

Respuesta

28

no veo nada como esto en el TextView atributos, sin embargo, que sólo podría hacer que el texto en mayúsculas antes de dejarla:

textView.setText(text.toUpperCase()); 

Si la Vista de Texto es una EditarTexto y que desea lo que el usuario escribe a En mayúsculas, podría implementar un TextWatcher y usar EditText addTextChangedListener para agregarlo, y en el método onTextChange tomar la entrada del usuario y reemplazarla con el mismo texto en mayúsculas.

editText.addTextChangedListener(upperCaseTextWatcher); 

final TextWatcher upperCaseTextWatcher = new TextWatcher() { 

public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { 
} 

public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { 
    editText.setText(editText.getText().toString().toUpperCase()); 
    editText.setSelection(editText.getText().toString().length()); 
} 

public void afterTextChanged(Editable editable) { 
} 

};

+0

Eso funciona si 'text' es una Cadena. Si está obteniendo el String de sus archivos xml con 'R.string.someID', necesitará lanzar una llamada' Resources.getString' (http://developer.android.com/reference/android/ content/res/Resources.html # getString% 28int% 29) – MatrixFrog

+1

Tenía miedo de tener que hacerlo de esta manera. Esperaba que hubiera un atributo simple que me faltaba. – Joren

+3

¿No será esto crear un stackOverFlow? – desgraci

30

Para su EditarTexto puede utilizar como filtro de InputFilter.AllCaps

editText.setFilters(new InputFilter[]{new InputFilter.AllCaps()}); 

Ver: http://d.android.com/reference/android/text/InputFilter.AllCaps.html

También puede especificar su EditarTexto través android:inputType:

<EditText 
    ... 
    android:inputType="textCapCharacters" /> 
+1

el filtro funcionó perfectamente gracias mucho. Sin embargo, no recomendaría usar el tipo de entrada "textCapCharacters" ya que está en desuso. – Raykud

+0

Entonces, ¿qué deberíamos usar? – Mirko

+2

@Raykud ¿dónde viste que 'textCapCharacters' está en desuso? – fiddler

1

encontré en this guía de desarrolladores de Android:

<TextView 
... 
android:capitalize="characters" 
... 
/> 
+3

Esto solo se aplica a EditText, no a TextView. De la documentación: "[...] capitalizar automáticamente lo que escribe el usuario" –

+1

¿Respuesta real? huh .... "android: capitalize está en desuso: Use inputType en su lugar" –

96

Prueba esto:

<TextView 
      android:textAllCaps="true" 
    /> 
+4

Esto funciona, pero no en todas las versiones o en el editor de diseño. – Kieran

+7

'android: textAllCaps' solo funciona si su minSdkVersion> = 14 (Ice Cream Sandwich) –

+0

Sé que es para un comentario de hace más de 3 años, pero esto solo funciona si está usando el teclado en pantalla, si alguien tiene un teclado físico (bluetooth o en el dispositivo) luego se ignora, es mejor usar un oyente –

2

Usted puede hacerlo, sólo se suma a TYPE_TEXT_FLAG_CAP_CHARACTERS InputType ::

editText.setInputType(android.text.InputType.TYPE_CLASS_TEXT 
        + android.text.InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS); 

espero ser ayudado!

5

uso

android:textAllCaps="true" 

esto hará que su todo Textview capital.

Cuestiones relacionadas