Czy istnieje sposób określania maksymalnej liczby linii dla EditText
? Rozumiem przez to wszystkie linie tekstu, nie tylko te widoczne (jak opisano atrybut the android:maxLines
). Liczba linii nie może wynosić 1, więc android:singleLine
nie jest opcją.Ustaw maksymalną liczbę linii tekstu dla EditText
Odpowiedz
Można to wykorzystać:
android:singleLine="false" android:lines="5"
Nie wiem, czy to robi to, co trzeba.
android:maxLength="140"
Wierzę, że jest równa jednej linii, teoretycznie można zmienić maksymalną długość na "700", która będzie wynosić 5 linii. Nie jestem dokładnie pewien liczb, ale logika stojąca za tym jest ważna.
To nie jest poprawne. Co się stanie, jeśli użytkownik wpisze 140x Enter? Tworzy wtedy 140 linii. – Sebi
Sebi - to, co użytkownik wprowadza, nie tworzy maksymalnej liczby linii. jest to kod programu, który ustawia limit. – Hounge
Ta odpowiedź nie brzmi dla mnie dobrze. Jak wspomina @Sebi, 140 znaków może obejmować dużą różnorodność linii, w zależności od tego, które znaki są w ciągu znaków. Oprócz przerw w linii istnieje duża różnica między szerokością 140 'i 140 m. – PaulrBear
Wierzę, że można użyć tego kodu, aby sprawdzić liczbę wierszy w EditText,
editText.getLayout().getLineCount() > row-limit;
Korzystnie można używać go w TextWatcher słuchacza „afterTextChanged()”, aby nie pozwolić użytkownikowi na wprowadzenie dalszych jeśli osiągnięto limit wierszy.
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.
}
});
zestaw android: maxLines = "2" w XML i dodać:
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());
}
}
});
jest rozwiązaniem dla mnie. To samo możesz zrobić dla limitu wierszy 3,4 ... n dla editekstu.
Czy potrafisz sformatować kod w odpowiedni sposób, a także wyjaśnić go trochę, jeśli potrafisz? –
maxLines = "2" w edytorze XML w xml - wyświetla tylko 2 wiersze dla użytkownika, ale może wpisać więcej niż 2 wiersze. W tym przypadku 1 wiersz zostanie ukryty, a użytkownik zobaczy drugi i trzeci wiersz itd.W metodzie afterTextChanged (Editable editable) sprawdzamy - czy nowy symbol pojawił się w trzecim rzędzie, czy nadal jest na sekundę lub na początku. jeśli symbol pojawia się w trzecim rzędzie - usuwamy go. Zatem tekst nie może być dłuższy niż 2 wiersze w 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);
}
}
}
, a następnie:
editText.addTextChangedListener(new EditTextLinesLimiter(editText, 2));
- 1. ustaw maksymalną liczbę linii uilabel
- 2. Android: wyrównanie w pionie dla wielu linii EditText (obszar tekstu)
- 3. Ustaw maksymalną liczbę wątków w czasie wykonywania na numpy/openblas
- 4. OpenSSL konfiguruje maksymalną liczbę połączeń
- 5. Ustaw maksymalną długość bloku tekstowego w XAML
- 6. Ustawienie stylu tekstu wskazówek Edittext dla kursywy
- 7. IME systemu Android, ustaw pozycję kursora w EditText
- 8. Jak ustawić maksymalną długość linii w PyCharm?
- 9. EditText: ustawić liczbę znaków programowo
- 10. Ustaw maksymalną wysokość za pomocą javascript
- 11. Ustaw wartość RGB dla tekstu etykiety
- 12. Ustaw globalny kolor tekstu?
- 13. Dziennik zdarzeń aplikacji przekraczający maksymalną dozwoloną liczbę
- 14. Kod Java do zawijania linii tekstu do maksymalnej szerokości linii
- 15. programowo ustaw edycję tekstu w systemie Android?
- 16. Czytanie tekstu EditText w Androidzie
- 17. EditText bez linii na dolnej
- 18. Przekroczono maksymalną liczbę bibliotek DLL w R
- 19. Opcja wklejania dla edittext
- 20. LINQ: Jak grupy przez maksymalną liczbę elementów
- 21. Help: Osiągnięto maksymalną liczbę klientów - Usterka segmentacji
- 22. Czy OkHttpClient ma maksymalną liczbę ponownych prób
- 23. Jak uzyskać maksymalną liczbę określonej długości
- 24. EditText nie zapisze się w pojedynczej linii
- 25. Dlaczego: help ignore: ustaw liczbę w .vimrc?
- 26. Jak ustawić ostrość na prawo tekstu w EditText dla Androida?
- 27. Zmiana części koloru tekstu w widgecie "EditText"
- 28. Ustaw szerokość automatycznie bloku tekstu
- 29. Ukryj EditText i ustaw go jako widoczny, klikając menu
- 30. Ustaw obraz po lewej stronie EditText w Androidzie
nr android: Linie około widocznych linii. Interesują mnie linie tekstu. Jeśli ustawisz android: lines na tekst edycji i napiszesz 10 linii, będziesz miał 10 linii tekstu, ale tylko 5 będzie widocznych. Chcę mieć maksymalnie 5 linii tekstu. Po linii Fift nie powinieneś już pisać. Dziękuję za odpowiedź. – Gratzi
OK, ale nie ma wbudowanego "ogranicznika wiersza". Musisz to zrobić sam. Jest temat na stackoverflow z przykładowym kodem, może możesz użyć tego: http://stackoverflow.com/questions/7092961/edittext-maxlines-not-working-user-can-can-input-more-lines-than- set – MartijnG
Widziałem ten post, ale poprawka obsługuje tylko klawisz Enter i nie jest zbyt elegancki. Usuwasz fragmenty tekstu, nawet jeśli nie jest to konieczne. – Gratzi