Текстовое преобразование: эквивалент в верхнем регистре в Android?

Это существует? Мне нужно сделать TextView, который всегда имеет верхний регистр.

Ответ 1

Я не вижу ничего подобного в атрибутах TextView, однако вы можете просто сделать текст в верхнем регистре, прежде чем устанавливать его:

textView.setText(text.toUpperCase());

Если TextView является EditText и вы хотите, чтобы все типы пользователей были заглавными, вы могли бы реализовать TextWatcher и использовать AddTextChangedListener EditText, чтобы добавить его, в методе onTextChange введите пользовательский ввод и замените его тем же текстом в верхний регистр.

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) {
}

};

Ответ 2

Попробуйте следующее:

   <TextView 
            android:textAllCaps="true"
    />

Ответ 3

Для вашего EditText вы можете использовать InputFilter.AllCaps как фильтр

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

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

Также вы можете указать свой EditText с помощью android:inputType:

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

Ответ 4

использовать

android:textAllCaps="true" 

это сделает весь ваш капитал Textview.

Ответ 5

Вы можете сделать это, добавив только TYPE_TEXT_FLAG_CAP_CHARACTERS к InputType::

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

Надеюсь, вам помогут!

Ответ 6

Я нашел this в руководстве разработчиков Android:

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