Ich möchte die EditText
mit max Linien von 2 und maximale Länge von 20 machen. Wenn die EditText
Länge ist mehr als 10, sollte es automatisch zu einer neuen Linie, so dass der Benutzer nicht gehen Drücken Sie die Eingabetaste. Kann mir jemand bei dieser Anforderung helfen?EditText automatisch auf eine neue Zeile wechseln
Antwort
Für die Linien, so etwas wie:
<EditText
android:inputType="textMultiLine" <!-- Multiline input -->
android:lines="2" <!-- Total Lines prior display -->
android:minLines="1" <!-- Minimum lines -->
android:gravity="top|left" <!-- Cursor Position -->
android:maxLines="2" <!-- Maximum Lines -->
android:layout_height="wrap_content"
android:layout_width="fill_parent"/>
Sie auch mit diesem Parameter spielen könnte (Ist für Android nicht funktionieren < = 3,0):
android:singleLine="false"
Und für die Nummer von Zeichen, tun etwas wie:
EditText et= (EditText) findViewById(R.id.editText1);
InputFilter[] filters = new InputFilter[1];
filters[0] = new InputFilter.LengthFilter(20); //Filter to 20 characters
et.setFilters(filters);
oder verwenden diese anderen Parameter,
android:maxLength="20"
im xml
Vielen Dank für Ihre Antwort, aber ich möchte automatisch eingeben, wenn Edittext Länge mehr als 10 ist, also grundsätzlich 10 Zeichen pro Zeilen und Maxline ist nur 2 –
Nur FYI ** maxLines ** Attribut (wenn gesetzt> 2 Zeilen) funktioniert nicht Android <3 ... auch! Es ist immer noch auf 2 Zeilen eingestellt (unabhängig vom Wert). – Fllo
Für die EditText 2 Zeilen anzuzeigen. Sie können so schreiben:
android:maxLength="20"
android:maxLines="2"
android:singleLine="false"
android:layout_width="Your Choice"
Es sollte eine sehr elegante Möglichkeit existieren, aber diese Lösung könnte Ihnen als Anhaltspunkt helfen, um zu erreichen, was Sie wollen. Zunächst einmal müssen Sie wie unten Ihre EditText
Werte setzen:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text|textMultiLine|textCapSentences"
android:maxLength="21"
android:gravity="left"
android:maxLines="2" />
Sie müssen das maxLength
Attribut 21
setzen, weil die char (neue Zeile) eingeben, wird ein Zeichen in der EditText nehmen , dann kann der Benutzer nur 19
Zeichen anstelle von 20
schreiben.
Dann sollten Sie einen TextWatcher
mit einem boolean
verwenden (verwendet, wenn der Benutzer seine vorherigen Zeichen entfernt), und dies sollte wie folgt lauten:
// init global boolean
private boolean isReached = false;
// in onCreate method
edittext.addTextChangedListener(new TextWatcher(){
@Override
public void afterTextChanged(Editable s) {
// if edittext has 10chars & this is not called yet, add new line
if(textEd.getText().length() == 10 && !isReached) {
textEd.append("\n");
isReached = true;
}
// if edittext has less than 10chars & boolean has changed, reset
if(textEd.getText().length() < 10 && isReached) isReached = false;
}
});
Hinweis: Allerdings sollten Sie mit dieser vorsichtig sein Code. In der Tat kann der Benutzer immer noch die Key Enter
drücken und dann neue Zeilen hinzufügen. Vielleicht könnten diese Antworten helfen Ihnen, es zu handhaben und den Benutzer halten nur "auf der Straße": Prevent enter key on EditText but still show the text as multi-line
Für zweite und weitere Zeilen kann der Code nicht für die nächste Zeile verschoben werden.Es führt zu mathematischen Berechnungen –
Fügen Sie diese auf Ihre EditText xml-Code
android: input = "textMultiLine"
Dadurch wird der Text automatisch in die nächste Zeile verschoben, während Daten eingegeben werden.
Dies fügt \ n Zeichen der Zeichenfolge nicht hinzu. bricht nur die Zeile in der EditText-Ansicht, was das OP nicht verlangt. –
- 1. Automatisch zur nächsten Zeile in Recyclerview wechseln
- 2. Automatisch html Tabs wechseln
- 3. wie in eine neue Datenbank wechseln
- 4. EditText-Präfix für jede Zeile
- 5. EditText - Abstand zwischen Text und EditText-Zeile
- 6. eine neue Zeile in Tabelle
- 7. Neue Liniensymbol in EditText Andorid
- 8. Gibt es eine Möglichkeit, automatisch eine neue Zeile in eine Junction-Tabelle in SQL hinzuzufügen?
- 9. Gibt es trotzdem einen TextView automatisch auf eine neue Zeile nach einer bestimmten Anzahl von Zeichen zu gehen?
- 10. Neue Zeile in Vim automatisch kommentieren nur für Blockkommentare
- 11. jqmath - neue Zeile hinzugefügt vor/nach der mathematische Funktion automatisch
- 12. Wie absichtlich zu einer neuen Zeile in einem EditText gehen?
- 13. anhängen eine neue Zeile zu einem NSString
- 14. Automatisch auf Schaltfläche klicken, wenn EditText korrekt ist
- 15. HTMLEditorKit insertHTML fügt eine neue Zeile Tag auf den String
- 16. Using \ n setzt das vorherige Zeichen auf eine neue Zeile
- 17. vim eine neue Zeile mit tabspaces eingeben
- 18. Responsive Table Zelle auf neue Zeile
- 19. SQL Server: Warten auf neue Zeile
- 20. Python "Split" auf leere neue Zeile
- 21. Ucwords funktioniert nicht auf neue Zeile .. Alternative?
- 22. Anzeige: table-cell auf neue Zeile
- 23. Neue Zeile auf Django admin Textfeld
- 24. Wallpaper sollte automatisch auf Android-Handy jeden Tag wechseln
- 25. Set Eclipse automatisch auf Java-Perspektive zu wechseln, wenn Debug
- 26. JTextArea neue Zeile auf shift + geben
- 27. AlertDialog mit EditText, Softkey automatisch öffnen mit Fokus auf EditText funktioniert nicht
- 28. Verzögerung vor 'O' öffnet eine neue Zeile?
- 29. Make fgets() eine neue Zeile ignorieren
- 30. Ersetzen Sie eine neue Zeile in TSQL
Ich habe nicht versucht, aber ich denke, Sie sollten mit TextWatcher versuchen. Wenn die Länge 10 erreicht, füge "\ n" zum aktuellen String hinzu. – DucTran