możliwy duplikat: android-singleline-true-not-working-for-edittext
<EditText
android:id="@+id/searchbox"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:lines="1"
android:scrollHorizontally="true"
android:ellipsize="end"
android:layout_weight="1"
android:layout_marginTop="2dp"
android:drawablePadding="10dp"
android:background="@drawable/edittext"
android:drawableLeft="@drawable/folder_full"
android:drawableRight="@drawable/search"
android:paddingLeft="15dp"
android:hint="search...">
</EditText>
Chcę, aby powyższe EditText
zawierało tylko jedną linię. Nawet jeśli użytkownik naciśnie „enter”, kursor nie powinien przejść do drugiej linii. Czy ktoś może mi w tym pomóc?
android
android-edittext
Pankaj Singhal
źródło
źródło
android:singleLine=true
android:singleLine=true
.android:inputType="textVisiblePassword"
rozwiąże problemOdpowiedzi:
Użyj
android:maxLines="1"
iandroid:inputType="text"
Zapomniałeś atrybutu android: maxLines . I zapoznaj się z Androidem: inputType Na przykładzie poniżej podany zostanie ten wynik:
źródło
23.0.1
SDKUżywanie
android:singleLine="true"
jest przestarzałe.Wystarczy dodać typ wprowadzania i ustawić maxline na 1, a wszystko będzie działać dobrze
źródło
android:inputType="number"
jest już maksymalnie 1 linia.android:singleLine
jest teraz przestarzałe Z dokumentacji :Możesz więc ustawić
android:inputType="textEmailSubject"
dowolną inną wartość pasującą do zawartości pola.źródło
android:inputType="text"
.Musisz dodać ten wiersz w EditText w XML:
źródło
maxLines
iinputType
skojarzonejDodaj powyższy kod, aby mieć jeden wiersz w znaczniku EditText w układzie.
źródło
Teraz
android:singleLine
atrybut jest przestarzały. Dodaj te atrybuty do swojegoEditText
,EditText
aby być pojedynczym wierszem.źródło
Zrobiłem to w przeszłości,
android:singleLine="true"
dodając detektor dla klawisza „enter”:źródło
To zadziała dla EditText:
Następnie ustawiłbym maksymalną długość tekstu wejściowego:
To są 2, które są teraz potrzebne.
źródło
Zawierać
android:singleLine="true"
źródło
Wszyscy pokazują sposób XML, z wyjątkiem jednej osoby, która wywołała metodę setMaxLines EditText. Jednak kiedy to zrobiłem, to nie działało. Jedną z rzeczy, które działały dla mnie, było ustawienie typu wejścia.
Pozwala to na AZ, az, 0-9 i znaki specjalne, ale nie pozwala na naciśnięcie enter. Po naciśnięciu klawisza enter nastąpi przejście do następnego komponentu GUI, jeśli ma zastosowanie w aplikacji.
Możesz także ustawić maksymalną liczbę znaków, które można umieścić w tym EditText, albo zepchnie to, co jest po jego prawej stronie, z ekranu, lub po prostu zacznie spływać z ekranu. Możesz to zrobić w następujący sposób:
To ustawia maksymalną liczbę znaków na 8 w tym EditText. Mam nadzieję, że to wszystko pomoże.
źródło
Programowo:
źródło
posługiwać się
źródło
spróbuj tego kodu
źródło
@Aleks G OnKeyListener () działa naprawdę dobrze, ale uruchomiłem go z MainActivity i musiałem go nieco zmodyfikować:
Mam nadzieję, że pomoże to każdemu, kto spróbuje zrobić to samo.
źródło
Aby ograniczyć, wystarczy ustawić opcję pojedynczej linii na „true”.
źródło
Ważne jest również zwrócenie uwagi, jeśli właściwość android: inputType to textMultiLine . Jeśli tak, właściwości android: singleLine, android: imeOptions, android: ellipsize i android maxLines zostaną zignorowane, a Twój EditText i tak zaakceptuje MultiLines.
źródło
Dodaj tę linię do swojego tekstu edycyjnego
android: inputType = "text"
źródło
Tak jak
android:singleLine="true"
obecnie amortyzowane więc użyjandroid: maxLines = „1”
Zamiast tego użyj maxLines, aby zmienić układ tekstu statycznego, a zamiast tego użyj textMultiLine w atrybucie inputType do edytowalnych widoków tekstu (jeśli podano zarówno singleLine, jak i inputType, flagi inputType zastąpią wartość singleLine).
źródło
Użyj kodu poniżej zamiast kodu
źródło
w pliku XML dodaj te właściwości do Edytuj tekst
źródło
pracował dla mnie.
źródło
Musisz dodać tę linię do swojego EditText
i jeszcze jedno, nie zapomnij ustawić
android:inputType
(cokolwiek chcesz, SMS-a, telefonu .., ale musisz to ustawić)źródło
W pliku XML. Poprostu dodaj
android: maxLines = „1”
źródło