textview отображать только заглавные буквы

1

У меня есть кнопка, которая при щелчке перебирает слово и помещает это слово в текстовое представление.

Я хочу, чтобы textview отображал только заглавные буквы.

Как я могу это сделать?

Спасибо.

Теги:

3 ответа

-1
Лучший ответ

Если вы хотите, чтобы TextView заглаждал все, что помещено в него, вы можете установить атрибут capize для XML в TextView.

Если вы имеете в виду, что хотите получить только прописные буквы ex:

"Привет!" → "HT"

Тогда вам понадобится немного кода Java (из памяти, непроверенный):

private static String removeLowercase(String input)
{
   if(input == null)
     return null;

   String retVal = "";

   for(int i=0; i < input.length(); i++)
   {
        char c = input.charAt(i);

        if(Character.isUpperCase(c))
            retVal += c;
   }

   return retVal;
}

Затем вы можете установить текст в TextView:

myTV.setText(removeLowercase("SomeInput"));
  • 0
    Спасибо, я пробовал это, но это, кажется, не работает, когда я добавляю его в функцию перемешанного слова, как этот jumble.setText ((removeLowercase (wordJ.toString ()))) ;, Было бы проще сделать так, чтобы текст редактирования имел только заглавные буквы?
  • 1
    Не волнуйтесь, мне удалось сделать это с помощью Android: inputType = "textCapCharacters". Но ваш код помог как-то убрать [] из перемешанного слова. Спасибо:)
8

Использование android: textAllCaps: true будет работать как шарм

 <TextView
    android:layout_width="0dip"
    android:layout_height="wrap_content"
    android:layout_weight="3"
    android:text="@string/app_name"
    android:textAllCaps="true"
    android:layout_gravity="center_vertical"
   android:textStyle="bold"
    android:typeface="sans" />

В коде Java используйте

   text.toUpperCase() 
2

Это преобразует текст во все прописные буквы

text.toUpperCase() 
  • 0
    Спасибо, но это не определено для ArrayList <Character>. На данный момент он установлен как jumble.setText (wordJ.toString ()); ,

Ещё вопросы

Сообщество Overcoder
Наверх
Меню