2017-12-18 3 views
-4

Ich habe eine Anforderung, dass Edittext alle Wörter mit Großbuchstaben beginnen sollen. Wenn der Benutzer es in einem kleineren Fall (erster Buchstabe des Wortes) schreibt, sollte es auch in Großbuchstaben konvertiert werden.Kraftvoll machen Jedes Wort beginnt mit Capital in Editext - Benutzer sollte es nicht ändern

ich es in dem Layout getan habe, wie unten so weit:

<EditText 
     android:id="@+id/edGymName"          
     style="@style/LoginRegisterEditText" 
     android:layout_marginTop="@dimen/size_10" 
     android:layout_toLeftOf="@+id/txtStatusGymStatus" 
     android:hint="@string/gym_tag"       
     android:inputType="textPersonName|textCapWords|textNoSuggestions" 
     android:maxLength="30" /> 

Aber ich will nicht, damit der Benutzer die ersten Buchstaben des Wortes in dem kleinen Brief zu schreiben. Dies funktioniert, aber der Benutzer kann den ersten Buchstaben des Wortes im kleinen Fall schreiben. Was, wenn wir es gewaltsam nicht zulassen.

+0

@Ankita Lesen Sie die Frage vollständig und erhalten Sie die Bedeutung des Wortes "FORCEFULLY". Benutzer sollte den ersten Buchstaben nicht für jedes Wort kleiner machen. –

+2

Wenn Sie einen TextWatcher implementieren, können Sie das erste Zeichen in afterTextChanged() –

Antwort

0

Versuchen Sie, diese in der XML-Datei:

android:inputType="text|textCapCharacters" 

Eine andere Sache, die Sie tun können, dies ist, wird sie Ihre Bearbeiten von Text umschreiben, nachdem Benutzer Änderungen vornimmt.

String oldText = ""; //this must be outside the method where the addTextChangedListener on the editText is set. (Preferrably outside the onCreate()) 

editText.addTextChangedListener(new TextWatcher() { 
    @Override 
    public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { 

    } 

    @Override 
    public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { 

    } 

    @Override 
    public void afterTextChanged(Editable editable) { 
     if (editable.toString().length() > 0 && 
       !editable.toString().equals(oldText)) { 
      oldText = editable.toString(); //prevent infinite loop 
      editText.setText(capitalizeFirstLetterWord(editable.toString())); 
      editText.setSelection(editText.getText().length()); //set the cursor to the end of the editText 
     } 

    } 
}); 
+0

nicht arbeiten .. !!! –

Verwandte Themen