Как заглавные буквы первой буквы текста в TextView в Android-приложении
Я не имею в виду textInput, либо. Я имею в виду, что как только у вас есть статический текст в TextView (заполненный из вызова базы данных для введенных пользователем данных (которые могут не быть заглавными)), как я могу убедиться, что они заглавные?
спасибо!
7 ответов:
Я должен быть в состоянии выполнить это с помощью стандартных манипуляций строки java, ничего Android или TextView конкретного.
что-то типа:
String upperString = myString.substring(0,1).toUpperCase() + myString.substring(1);
хотя есть, вероятно, миллион способов сделать это. Смотрите строка документация.
android:inputType="textCapSentences"
или
TV.sname.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);
Это будет первая буква.
или
compile 'org.apache.commons:commons-lang3:3.4' //in build.gradle module(app) tv.setText(StringUtils.capitalize(myString.toLowerCase().trim()));
StringBuilder sb = new StringBuilder(name); sb.setCharAt(0, Character.toUpperCase(sb.charAt(0))); return sb.toString();
Вы можете добавить Apache Commons Lang в Gradle как
compile 'org.apache.commons:commons-lang3:3.4'
и использовать
WordUtils.capitalizeFully(name)
для будущих посетителей, вы можете также (лучший IMHO) импортировать
WordUtil
сApache
и добавить много полезных методов для вас приложение, какcapitalize
как показано ниже:
пожалуйста, создайте пользовательский TextView и используйте его:
public class CustomTextView extends TextView { public CapitalizedTextView(Context context, AttributeSet attrs) { super(context, attrs); } @Override public void setText(CharSequence text, BufferType type) { if (text.length() > 0) { text = String.valueOf(text.charAt(0)).toUpperCase() + text.subSequence(1, text.length()); } super.setText(text, type); } }
для меня не работает:
функция:
private String getCapsSentences(String tagName) { String[] splits = tagName.toLowerCase().split(" "); StringBuilder sb = new StringBuilder(); for (int i = 0; i < splits.length; i++) { String eachWord = splits[i]; if (i > 0 && eachWord.length() > 0) { sb.append(" "); } String cap = eachWord.substring(0, 1).toUpperCase() + eachWord.substring(1); sb.append(cap); } return sb.toString(); }
результат:
I / P
brain
O / P мозгI / P
Brain and Health
O / PBrain And Health
I / P
brain And health
до O / PBrain And Health
I / P
brain's Health
до O / PBrain's Health
I / P
brain's Health and leg
до O / PBrain's Health And Leg
надеюсь, что это поможет вам.