Esiste un modo per specificare il numero massimo di righe per un EditText
? Con questo intendo tutte le righe di testo, non solo quelle visibili (come descritto nell'attributo the android:maxLines
). Il numero di linee non deve essere 1, quindi android:singleLine
non è un'opzione.Imposta il numero massimo di righe di testo per un EditText
risposta
È possibile utilizzare questo:
android:singleLine="false" android:lines="5"
Non so se che fa quello che vi serve.
android:maxLength="140"
Credo che questo è uguale a una linea, in teoria è possibile modificare la lunghezza massima a "700" che sarebbe 5 linee. Non sono esattamente sicuro sui numeri ma la logica dietro è valida.
Questo non è valido. Cosa succede se l'utente digita 140x Invio? Crea quindi 140 linee. – Sebi
Sebi- ciò che l'utente inserisce non crea il numero massimo di righe. questo è il codice del programma che stabilisce il limite. – Hounge
Questa risposta non mi sembra giusta. Come menzionato @Sebi, 140 caratteri possono estendersi su una grande varietà di linee, a seconda dei caratteri presenti nella stringa. Oltre alle interruzioni di linea, c'è una grande differenza tra la larghezza di 140 'i e 140' m's. – PaulrBear
io credo che si possa utilizzare questo codice per verificare il numero di linee in EditText,
editText.getLayout().getLineCount() > row-limit;
Preferibilmente si possono utilizzare in un TextWatcher Listener "afterTextChanged()" per non consentire all'utente per l'inserimento di ulteriori se il il limite di riga è stato raggiunto.
edit.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
if(editText.getLayout().getLineCount() > row-limit){
//Code to stop edittext from being edited any further.
}
});
set android: maxLines = "2" in formato XML e aggiungere:
edittext.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) { }
@Override
public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) { }
@Override
public void afterTextChanged(Editable editable) {
if (null != edittext.getLayout() && edittext.getLayout().getLineCount() > 2) {
edittext.getText().delete(edittext.getText().length() - 1, edittext.getText().length());
}
}
});
è soluzione per me. Lo stesso si può fare per 3,4 ... n limite di righe per il proprio edittext.
Puoi formattare il codice in modo corretto e anche spiegarlo un po 'se puoi? –
maxLines = "2" nel tuo edittext in xml - rende visibili solo 2 righe per l'utente, ma può digitare più di 2 righe. In questo caso, una riga verrà nascosta e l'utente vedrà la seconda e la terza riga e così via.Nel metodo afterTextChanged (Modificabile modificabile) controlliamo - il nuovo simbolo appare nella terza riga, o è ancora in secondo o primo. se il simbolo appare nella terza riga, lo cancelliamo. Quindi il testo non può essere più lungo di 2 righe in edittext. – fvolodimir
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
public class EditTextLinesLimiter implements TextWatcher {
private EditText editText;
private int maxLines;
private String lastValue = "";
public EditTextLinesLimiter(EditText editText, int maxLines) {
this.editText = editText;
this.maxLines = maxLines;
}
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
lastValue = charSequence.toString();
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
if (editText.getLineCount() > maxLines) {
int selectionStart = editText.getSelectionStart() - 1;
editText.setText(lastValue);
if (selectionStart >= editText.length()) {
selectionStart = editText.length();
}
editText.setSelection(selectionStart);
}
}
}
E poi:
editText.addTextChangedListener(new EditTextLinesLimiter(editText, 2));
- 1. Imposta il numero massimo di righe visibili per listview
- 2. imposta il numero massimo di righe in uilabel
- 3. setText non imposta testo per EditText
- 4. Imposta automaticamente il numero massimo di attività mappa per nodo sul numero di core?
- 5. Numero massimo (utilizzabile) di righe in una tabella Postgresql
- 6. Numero massimo di righe in una tabella sqlite?
- 7. Numero massimo di thread
- 8. Android Edittext Numero estensibile
- 9. Come ottenere il numero massimo di righe per gruppo/partizione in SQL Server?
- 10. OpenSSL configura il numero massimo di connessioni
- 11. Seleziona il testo per copiare Android EditText
- 12. Numero massimo di UILocalNotification per iphone
- 13. Formattazione del numero di telefono EditText come tipi di utente
- 14. OkHttpClient ha un numero massimo di tentativi
- 15. Aumenta il numero massimo di connessioni MongoDB
- 16. Qual è il numero massimo di connessioni?
- 17. Imposta il numero massimo di thread in fase di esecuzione su numpy/openblas
- 18. Esiste un numero massimo di ceste git?
- 19. Come trovare il numero massimo
- 20. Qual è il numero massimo di file per jar?
- 21. Come scrivere un vincolo riguardante un numero massimo di righe in postgresql?
- 22. Qual è il valore massimo di un numero in Lua?
- 23. Numero massimo di HttpWebRequests simultanei
- 24. Esiste un numero massimo di assembly per un'app .NET.
- 25. Numero massimo di thread Android
- 26. Numero limite di righe nella casella di testo .net
- 27. imposta programmaticamente il testo di modifica in Android?
- 28. Node.js: conta il numero di righe in un file
- 29. Numero massimo di due DataFrames Ignorare NaN
- 30. Algoritmo per scrivere un numero limitato di righe nel file di testo
No. Android: linee è di circa le linee visibili. Sono interessato alle linee di testo. Se imposti Android: linee in un testo di modifica e scrivi 10 linee, avrai 10 righe di testo, ma solo 5 visibili. Quello che voglio è avere un massimo di 5 righe di testo. Dopo la linea fift non dovresti più essere in grado di scrivere. Grazie per la risposta. – Gratzi
Ok, ma non c'è build in "limitatore di riga". Devi farlo da solo. C'è un argomento su StackOverflow con un codice di esempio, forse puoi usare quello: http://stackoverflow.com/questions/7092961/edittext-maxlines-not-working-user-can-still-input-more-lines-than- set – MartijnG
Ho visto quel post, ma la correzione gestisce solo il tasto invio e non è molto elegante. Si eliminano porzioni di testo, anche se non è necessario farlo. – Gratzi