Ich beziehe mich auch nicht auf textInput. Ich meine, wenn ich einen statischen Text in einem TextView habe (der von einem Datenbankaufruf mit vom Benutzer eingegebenen Daten gefüllt wird (die möglicherweise nicht in Großschreibung erscheinen)), wie kann ich sicherstellen, dass sie großgeschrieben werden?
Vielen Dank!
Ich sollte in der Lage sein, dies durch Standard-Java-String-Manipulation zu erreichen, nichts, was für Android oder TextView spezifisch ist.
So etwas wie:
String upperString = myString.substring(0,1).toUpperCase() + myString.substring(1);
Obwohl es wahrscheinlich eine Million Möglichkeiten gibt, dies zu erreichen. Siehe String Dokumentation.
Android:inputType="textCapSentences"
oder
TV.sname.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);
Dies wird den ersten Buchstaben CAP.
oder
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();
Sie können Apache Commons Lang In Gradle wie compile 'org.Apache.commons:commons-lang3:3.4'
hinzufügen.
Und benutze WordUtils.capitalizeFully(name)
für Kotlin einfach anrufen
textview.text = string.capitalize()
Für zukünftige Besucher können Sie (beste IMHO) auch WordUtil
aus Apache
importieren und Ihrer App viele nützliche Methoden hinzufügen, wie capitalize
wie hier gezeigt:
Wie wird das erste Zeichen eines jeden Wortes in einer Zeichenfolge groß geschrieben
Für mich arbeitet nichts:
Funktion:
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();
}
Ergebnis:
I/P brain
O/P Gehirn
I/P Brain and Health
O/P Brain And Health
I/P brain And health
an O/P Brain And Health
I/P brain's Health
an O/P Brain's Health
I/P brain's Health and leg
an O/P Brain's Health And Leg
Hoffe das würde dir helfen.
Bitte erstellen Sie ein benutzerdefiniertes TextView und verwenden Sie es:
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);
}
}