web-dev-qa-db-fra.com

Définir EditText imeOptions sur actionNext n'a aucun effet

J'ai un fichier de mise en page XML assez complexe (pas vraiment). L'une des vues est un LinearLayout (v1) avec deux enfants: un EditText (v2) et un autre LinearLayout (v3). Le LinearLayout enfant a à son tour un EditText (v4) et un ImageView (v5).

Pour EditText v2, j'ai imeOptions comme

Android:imeOptions="actionNext"

Mais lorsque je lance l'application, la variable return du clavier ne vérifie pas la valeur next et je souhaite la remplacer par next. Comment puis-je résoudre ce problème?

En outre, lorsque l'utilisateur clique sur Suivant, je souhaite que le focus soit défini sur EditText v4. Est-ce que je fais ça?

Pour ceux qui ont vraiment besoin de voir du code:

<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>
71
Katedral Pillon

Ajoutez simplement Android:maxLines="1" & Android:inputType="text" à votre EditText. Ça va marcher!! :)

153
Surendra Kumar

singleLine est obsolète. L'ajout d'un type d'entrée (par exemple: Android:inputType="text") a également fonctionné pour moi.

Utiliser Android:maxLines="1" car singleLine est obsolète

47
pratnala

Android:singleLine est obsolète, il est préférable de combiner Android:maxLines="1" avec Android:inputType="text". Ce serait le code:

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

ligne unique obsolète donc vous ajoutez ci-dessous le code je pense que inputType doit.

        <EditText 
            Android:inputType="text"
            Android:maxLines="1"
            Android:imeOptions="actionNext" />
9
influx

Enfin, j’ai trouvé la solution à ce problème Il suffit d’ajouter ces 3 lignes dans votre texte de mise à jour pour que tout fonctionne 

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

Ici, vous pouvez ajouter maxLines selon vos besoins. Ne pas utiliser singleLine car il est déconseillé maintenant . Bonne chance!

8
Ali Nawaz
Android:inputType="text"

Vous devez spécifier un type inputType pour que imeOptions puisse fonctionner.

6
paulb444

Les réponses données ici étaient toutes très utiles, mais je luttais toujours pour que "Next" de mon clavier soit affiché.

Il s'avère que l'utilisation de l'attribut Android:digits d'Android dans votre code XML empêche le Android:imeOptions="actionNext" de fonctionner comme prévu.

La réponse consiste en fait à utiliser le Android:singleLine="True" obsolète. Cela semble forcer l'option IME à être respectée.

Ancien code non fonctionnel

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

Code de travail

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

Je ne suis pas partisan de l'utilisation d'un attribut déconseillé, mais pour l'instant, il semble obtenir le résultat souhaité.

6
welshk91

La clé ici est de définir le type d'entrée et les attributs imeOptions

<EditText 
   Android:inputType="number"
   Android:maxLines="1"
   Android:imeOptions="actionSearch" />
3
pavan bangalala
<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"
             />
1
saigopi

Seulement cela a fonctionné pour moi.

Changes le:

Android:maxLines="1"
Android:inputType="text"
Android:imeOptions="actionNext"

sur ça:

Android:singleLine="true"
Android:inputType="text"
Android:imeOptions="actionNext"
0
Zakhar Rodionov