Mam dość złożony (nie do końca) plik układu XML. Jeden z widoków to LinearLayout ( v1
) z dwoma v2
elementami podrzędnymi: EditText ( v3
) i innym LinearLayout ( ). Z kolei element podrzędny LinearLayout ma EditText ( v4
) i ImageView ( v5
).
Dla EditText v2 mam imeOptions jako
android:imeOptions="actionNext"
Ale kiedy uruchamiam aplikację, klawiatura return
nie sprawdza next
i chcę, aby zmieniła się na next
. Jak rozwiązać ten problem?
Ponadto, gdy użytkownik kliknie następny, chcę skupić się na przejściu do EditText v4. Mam to zrobić?
Dla tych, którzy naprawdę potrzebują zobaczyć kod:
<LinearLayout
android:id="@+id/do_txt_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/col6"
android:orientation="vertical"
android:visibility="gone" >
<EditText
android:id="@+id/gm_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="@drawable/coldo_text"
android:hint="@string/enter_title"
android:maxLines="1"
android:imeOptions="actionNext"
android:padding="5dp"
android:textColor="pigc7"
android:textSize="ads2" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:orientation="horizontal" >
<EditText
android:id="@+id/rev_text"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_margin="5dp"
android:layout_weight="1"
android:background="@drawable/coldo_text"
android:hint="@string/enter_msg"
android:maxLines="2"
android:padding="5dp"
android:textColor="pigc7"
android:textSize="ads2" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:background="@drawable/colbtn_r”
android:clickable="true"
android:onClick=“clickAct”
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:src="@drawable/abcat” />
</LinearLayout>
</LinearLayout>
android
android-layout
focus
ime
Katedral Pillon
źródło
źródło
android:nextFocusDown="@id/edit_text_v4"
(może też spróbowaćandroid:nextFocusForward
lub niektóre inne atrybuty nextFocus).Odpowiedzi:
Po prostu dodaj
android:maxLines="1" & android:inputType="text"
do swojego EditText. To będzie działać!! :)źródło
wrap_content
. UstawienieinputType
rozwiązało problem w moim przypadku.android:maxLines="1"
zamiastandroid:singleLine="true"
jako przestarzałymaxLine="1"
nie działają.singleLine
jest przestarzałe. Dodanie typu wejścia (np:)android:inputType="text"
również działało dla mnie.Użyj
android:maxLines="1"
jakosingleLine
przestarzałeźródło
android:singleLine
został wycofany, lepiej jest połączyć goandroid:maxLines="1"
zandroid:inputType="text"
. To byłby kod:<EditText android:id="@+id/editText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:inputType="text" />
źródło
Udzielone tutaj odpowiedzi były bardzo pomocne, ale wciąż starałem się pokazać „Dalej” na klawiaturze.
Okazuje się, że użycie
android:digits
atrybutu Androida w pliku XML uniemożliwiaandroid:imeOptions="actionNext"
działanie zgodnie z oczekiwaniami.Odpowiedzią jest użycie wycofanego pliku
android:singleLine="True"
. Wydaje się, że wymusza to poszanowanie opcji IME.Stary, niedziałający kod
<android.support.design.widget.TextInputEditText android:id="@+id/first_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ- " android:ellipsize="end" android:hint="@string/first_name" android:imeOptions="actionNext" android:inputType="textCapWords" android:maxLength="35" android:maxLines="1" />
Kodeks roboczy
<android.support.design.widget.TextInputEditText android:id="@+id/first_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ- " android:ellipsize="end" android:hint="@string/first_name" android:imeOptions="actionNext" android:inputType="textCapWords" android:maxLength="35" android:maxLines="1" android:singleLine="true" />
Nie jestem fanem używania przestarzałego atrybutu, ale na razie wydaje się, że daje on pożądany rezultat.
źródło
pojedynczy wiersz przestarzały, więc należy dodać poniższy kod, myślę, że inputType musi.
<EditText android:inputType="text" android:maxLines="1" android:imeOptions="actionNext" />
źródło
Wreszcie mam pewne rozwiązanie tego problemu. Po prostu dodaj te 3 linie do tekstu edycji i będzie działać dobrze
android:maxLines="1" android:inputType="text" android:imeOptions="actionDone"
Tutaj możesz dodać maxLines zgodnie z wymaganiami. Nie używaj singleLine, ponieważ jest teraz przestarzała. Powodzenia!
źródło
android:inputType="text"
Musisz określić inputType, aby imeOptions działało.
źródło
Te trzy linie wystarczą.
android:singleLine="true" android:inputType="text" android:imeOptions="actionNext"
źródło
Kluczowe jest tutaj ustawienie typu wejścia i atrybutów imeOptions
<EditText android:inputType="number" android:maxLines="1" android:imeOptions="actionSearch" />
źródło
Tylko to działało dla mnie.
Zmień to:
android:maxLines="1" android:inputType="text" android:imeOptions="actionNext"
Na tym:
android:singleLine="true" android:inputType="text" android:imeOptions="actionNext"
źródło
poniższy kod jest obowiązkowy
android:inputType="text"
źródło
<EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/auth_register_re_password" android:hint="Enter Password Again" android:imeActionLabel="login" android:gravity="center" android:imeOptions="actionUnspecified" android:inputType="textPassword" android:maxLines="1"/>
źródło
actionUnspecified
dokładnie.