EditText imeOptionsをactionNextに設定しても効果がない


94

かなり複雑な(実際ではない)xmlレイアウトファイルがあります。ビューの1つは、v12つの子を持つLinearLayout(v2)です:EditText()と別のLinearLayout(v3)。次に、子のLinearLayoutにはEditText(v4)とImageView(v5)があります。

EditText v2の場合、私はimeOptionsを持っています

android:imeOptions="actionNext"

しかし、アプリを実行すると、キーボードreturnがチェックせずnext、に変更したいと思いnextます。この問題を解決するにはどうすればよいですか?

また、ユーザーが次にクリックしたときに、フォーカスをEditText v4に移動したいと思います。私はこれをしますか?

本当にいくつかのコードを見る必要がある人のために:

<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:nextFocusDown="@id/edit_text_v4"ませんが、追加を試すことができます(android:nextFocusForwardまたは、他のnextFocus属性のいくつかを試してみてください)。
からくり

@からくりはうまくいきませんでした。次へボタンがまったく表示されていないことに注意してください。ボタンはまだ戻るボタンです。
カテドラルPillon 14

1
@KatedralPillonあなたはそれを解決することができましたか?はいの場合、ここにソリューションを投稿できますか?同じ問題に直面しています。
h4ck3d 2014年

回答:


189

android:maxLines="1" & android:inputType="text"EditTextに追加するだけです。それが動作します!!:)


3
EditTextの高さをwrap_contentに設定してみてください。
Surendra Kumar 14年

4
でも動作しませんwrap_content inputType私の場合、設定は問題を解決しました。
manfcas

3
使用android:maxLines="1"の代わりにandroid:singleLine="true"その廃止予定として
blueware

9
ただし、 `android:singleLine =" true "`は非推奨ですが、一部の方法ではうまくいきませんが、機能しmaxLine="1"ません。
Paresh P. 2016

2
imeoptionsを機能させるには、inputType = "text"を設定する必要があります。
Duran Jayson 2017

49

singleLine廃止予定です。入力タイプ(例:)の追加android:inputType="text"もうまくいきました。

使用するandroid:maxLines="1"ようsingleLine推奨されていません


1
これが正解です!imeOptionsとmaxLinesはinputTypeなしでは効果がありません
Christopher Smit

43

android:singleLine結合する方がよい、廃止されていandroid:maxLines="1"android:inputType="text"。これはコードです:

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

21

ここでの回答はすべて非常に役に立ちましたが、キーボードの「次へ」を表示するのに苦労していました。

android:digitsXMLでAndroidの属性を使用すると、がandroid:imeOptions="actionNext"期待どおりに機能しなくなることがわかります。

答えは、実際には非推奨のを使用することですandroid:singleLine="True"。これにより、IMEオプションが尊重されるようになります。

古い、機能しないコード

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

私は非推奨の属性を使用するのが好きではありませんが、今のところ、望ましい結果が得られているようです。


廃止予定に感謝しますが、動作しています!! 今後何か問題が発生しますか?
Arbaz.in '10 / 09/19

11

単一行は廃止されたので、以下のコードを追加します。

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

10

最後に私はこの問題の確実な解決策を得ました編集テキストにこれらの3行を追加するだけでうまくいきます

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

ここで、要件に応じてmaxLinesを追加できます。singleLineは現在非推奨であるため、使用しないでください。幸運を!


8
android:inputType="text"

imeOptionsを機能させるには、inputTypeを指定する必要があります。


最後のアイテムがフォームのパスワードの場合はどうなりますか?
silentsudo 2018

5

ここで重要なのは、入力タイプとimeOptions属性を設定することです

<EditText 
   android:inputType="number"
   android:maxLines="1"
   android:imeOptions="actionSearch" />

5

これだけがうまくいきました。

それを変更:

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

その上:

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

inputType = "text"がそれを行いました。
Hackmodford、

同じようにinputeType = "text"が機能します
wesley franks

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

actionUnspecified正確には何をしますか。
Shubham Naik、2018


4

これらの3行で十分です。

android:singleLine="true"
android:inputType="text"
android:imeOptions="actionNext"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.