it-swarm.com.de

So schreiben Sie den ersten Buchstaben eines Textes in einer Textansicht in einer Android-Anwendung

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!

59
Allen Gingrich

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.

133
Cheryl Simon
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()));
56
Beto Caldas
StringBuilder sb = new StringBuilder(name);
sb.setCharAt(0, Character.toUpperCase(sb.charAt(0)));  
return sb.toString();
17
noloman

Sie können Apache Commons Lang In Gradle wie compile 'org.Apache.commons:commons-lang3:3.4' hinzufügen.

Und benutze WordUtils.capitalizeFully(name)

6
Prakash

für Kotlin einfach anrufen

textview.text = string.capitalize()
4
Ben Kax

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

2
Androiderson

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.

1
Hiren Patel

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);
    }
}
1
Shrini Jaiswal