Das Setzen von EditText imeOptions auf actionNext hat keine Auswirkung

Lesezeit: 4 Minuten

Benutzer-Avatar
Katedral Pillon

Ich habe eine ziemlich komplexe (nicht wirklich) XML-Layoutdatei. Eine der Ansichten ist ein LinearLayout (v1) mit zwei Kindern: ein EditText(v2) und ein weiteres LinearLayout(v3). Das untergeordnete LinearLayout wiederum hat einen EditText(v4) und eine ImageView(v5).

Für EditText v2 habe ich imeOptions as

android:imeOptions="actionNext"

Aber wenn ich die App starte, ist die Tastatur return überprüft nicht next und ich möchte, dass es sich ändert next. Wie behebe ich dieses Problem?

Wenn der Benutzer auf „Weiter“ klickt, möchte ich außerdem, dass der Fokus auf EditText v4 geht. ich mache ich das?

Für diejenigen, die wirklich etwas Code sehen müssen:

<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="https://stackoverflow.com/questions/23036890/@drawable/abcat” />
        </LinearLayout>
    </LinearLayout>

  • Ich bin mir nicht sicher, ob dies für Ansichten funktioniert, die keine Geschwister sind, aber Sie können versuchen, sie hinzuzufügen android:nextFocusDown="@id/edit_text_v4" (vielleicht auch versuchen android:nextFocusForward oder einige der anderen nextFocus-Attribute).

    – Karakuri

    12. April 2014 um 22:36 Uhr

  • @Karakuri es hat nicht funktioniert. Beachten Sie, dass die nächste Schaltfläche überhaupt nicht angezeigt wird. Die Taste ist immer noch die Return-Taste.

    – Katedral Pillon

    12. April 2014 um 22:43 Uhr

  • @KatedralPillon Hast du es geschafft, es zu lösen? Wenn ja, kannst du deine Lösung hier posten? Ich stehe vor dem gleichen Problem.

    – h4ck3d

    30. Mai 2014 um 10:31 Uhr

Benutzer-Avatar
Surendra Kumar

Einfach hinzufügen android:maxLines="1" & android:inputType="text" zu deinem EditText. Es wird klappen!! 🙂

  • Versuchen Sie, die Höhe Ihres EditText als wrap_content einzustellen.

    – Surendra Kumar

    3. November 2014 um 23:06 Uhr

  • Funktioniert auch nicht mit wrap_content . Einstellen eines inputType hat das Problem in meinem Fall gelöst.

    – manfcas

    30. Juli 2016 um 15:12 Uhr

  • verwenden android:maxLines="1" Anstatt von android:singleLine="true" als veraltet

    – Blauware

    3. Oktober 2016 um 12:50 Uhr

  • Obwohl “android:singleLine=”true”” veraltet ist, funktioniert der Trick, während maxLine="1" funktioniert nicht.

    – Gemeinde P.

    22. Dezember 2016 um 6:39 Uhr

  • Sie müssen inputType=”text” setzen, damit imeoptions funktioniert.

    – Duran Jayson

    1. Juli 2017 um 21:13 Uhr

Benutzer-Avatar
Pratnala

singleLine ist veraltet. Eingabetyp hinzufügen (z. B.: android:inputType="text") hat bei mir auch funktioniert.

Verwenden android:maxLines="1" wie singleLine ist veraltet

  • Das ist die richtige Antwort!! imeOptions und maxLines haben keine Wirkung ohne inputType

    – Christoph Smit

    18. Juni 2017 um 8:18 Uhr

Benutzer-Avatar
voghDev

android:singleLine veraltet ist, ist es besser zu kombinieren android:maxLines="1" mit android:inputType="text". Das wäre der Code:

<EditText
        android:id="@+id/editText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:maxLines="1"
        android:inputType="text"
        />

Die hier gegebenen Antworten waren alle sehr hilfreich, aber ich hatte immer noch Probleme, das “Weiter” meiner Tastatur anzuzeigen.

Stellt sich heraus, dass, wenn Sie Android verwenden android:digits -Attribut in Ihrem XML verhindert es die android:imeOptions="actionNext" nicht wie erwartet funktionieren.

Die Antwort ist eigentlich, das veraltete zu verwenden android:singleLine="True". Dies scheint die Einhaltung der IME-Option zu erzwingen.

Alter, nicht funktionierender Code

        <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" />

Arbeitscode

        <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" />

Ich bin kein Fan der Verwendung eines veralteten Attributs, aber im Moment scheint es das gewünschte Ergebnis zu erzielen.

Benutzer-Avatar
Mani

einzelne Zeile veraltet, also fügen Sie den folgenden Code hinzu, ich denke, inputType muss.

        <EditText 
            android:inputType="text"
            android:maxLines="1"
            android:imeOptions="actionNext" />

Endlich habe ich eine sichere Lösung für dieses Problem. Fügen Sie einfach diese hinzu 3 Zeilen in Ihren Bearbeitungstext und es wird gut funktionieren

        android:maxLines="1"
        android:inputType="text"
        android:imeOptions="actionDone"

Hier können Sie hinzufügen maximale Anzahl an Zeilen entsprechend Ihrer Anforderung. Unterlassen Sie verwenden einzelne Zeile da es jetzt veraltet ist. Viel Glück!

Benutzer-Avatar
Googlian

Diese drei Zeilen reichen aus.

android:singleLine="true"
android:inputType="text"
android:imeOptions="actionNext"

1320770cookie-checkDas Setzen von EditText imeOptions auf actionNext hat keine Auswirkung

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy