Как использовать первую букву текста в TextView в приложении для Android
Я также не имею в виду textInput. Я имею в виду, что как только у вас есть статический текст в TextView (заполненный вызовом базы данных для введенных пользователем данных (это может быть не заглавное)), как я могу убедиться, что они капитализированы?
Спасибо!
Ответы
Ответ 1
Я должен быть в состоянии выполнить это с помощью стандартных манипуляций с java-строкой, без каких-либо Android или TextView.
Что-то вроде:
String upperString = myString.substring(0,1).toUpperCase() + myString.substring(1);
Хотя, возможно, существует миллион способов достижения этого. Смотрите документацию String.
Ответ 2
android:inputType="textCapSentences"
или
TV.sname.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);
Это будет CAP первая буква.
или
compile 'org.apache.commons:commons-lang3:3.4' //in build.gradle module(app)
tv.setText(StringUtils.capitalize(myString.toLowerCase().trim()));
Ответ 3
StringBuilder sb = new StringBuilder(name);
sb.setCharAt(0, Character.toUpperCase(sb.charAt(0)));
return sb.toString();
Ответ 4
Вы можете добавить Apache Commons Lang в Gradle как compile 'org.apache.commons:commons-lang3:3.4'
И используйте WordUtils.capitalizeFully(name)
Ответ 5
Для будущих посетителей вы можете также (лучший IMHO) импортировать WordUtil
из Apache
и добавить к вам много полезных методов, например capitalize
, как показано ниже:
Как использовать первый символ каждого слова в строке
Ответ 6
Создайте пользовательский 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);
}
}
Ответ 7
Для меня никто не работает
Функция:
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/P Brain And Health
Я/П brain And health
О/П Brain And Health
I/P brain Health
к O/P Brain Health
I/P brain Health and leg
к O/P Brain Health And Leg
Надеюсь, это поможет вам.
Ответ 8
Просто добавьте этот атрибут в EditText XML: android:inputType="textCapWords"
это будет закрывать первую букву из всего слова, вставленного
Ответ 9
для Kotlin, просто позвоните
textview.text = string.capitalize()