EditText下一个按钮键盘

6
我有一个布局,用户需要在其中的一些垂直线性布局中的EditText中输入他的详细信息。
然而,每次用户需要打开键盘,在EditText上写入内容,然后点击Android的返回按钮,再次点击下一个EditText并写入他的详细信息,如此反复。
我想实现的是,不要再打开和关闭键盘,而是使用一个“下一步”按钮代替键盘上的回车按钮。当用户在特定的EditText上输入完毕后,它将跳到下一个EditText,而不必每次都打开和关闭键盘。
我看到有一些应用程序具有此功能,但我找不到如何实现它的方法。
非常感谢!
以下是我的布局示例:
<LinearLayout
        android:layout_width="283dp"
        android:layout_height="match_parent"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:orientation="vertical" >



        <TextView
            android:id="@+id/aaa"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="aaaa" >

            <requestFocus />
        </TextView>

        <EditText
            android:id="@+id/bbb"
            android:layout_width="match_parent"
            android:layout_height="36dp"
            android:background="@drawable/text_back"
            android:ems="10"
            android:inputType="bbb" />

        <TextView
            android:id="@+id/cccc"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="ccc" />

        <EditText
            android:id="@+id/emailTextGroup"
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:background="@drawable/text_back"
            android:ems="10"
            android:inputType="textMultiLine" />

        <TextView
            android:id="@+id/dd"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="ddd" />

        <EditText
            android:id="@+id/fff"
            android:layout_width="match_parent"
            android:layout_height="38dp"
            android:background="@drawable/text_back"
            android:ems="10"
            android:inputType="fff" />

        <TextView
            android:id="@+id/yyy"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="yyy" />

        <EditText
            android:id="@+id/eeee"
            android:layout_width="match_parent"
            android:layout_height="32dp"
            android:background="@drawable/text_back"
            android:ems="10"
            android:inputType="textMultiLine" />

         <TextView
            android:id="@+id/yyyy"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="iii" />

        <EditText
            android:id="@+id/ooo"
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:background="@drawable/text_back"
            android:ems="10"
            android:inputType="textMultiLine" />

        <TextView
            android:id="@+id/ppp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="ppp" />

        <EditText
            android:id="@+id/sss"
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:background="@drawable/text_back"
            android:ems="10"
            android:inputType="textMultiLine" />



    </LinearLayout>
3个回答

7

您应该在 XML 文件中为您的 EditText 添加一个属性:

android:imeOptions="actionNext"

下一步按钮将带用户进入下一个可接收输入的字段。


非常感谢,我需要将其添加到布局中的所有editText吗? - Adir Rahamim
是的,您需要将此行添加到每个EditText中。 - Emil Adz
它不支持 Android 2.3.6,该怎么使其能够运行?@EmilAdz - Shailendra Madda
谢谢!我已经尝试了很久的nextFocusDown,但它没有起作用。 - Red M

5

这里有一份非常好的文档:

nextFocusDown

如果我理解正确,这个选项卡顺序正是你所需要的。


我需要在每个EditText字段中添加:android:android:nextFocusDown ="+@id/next_editText_id吗?非常感谢。 - Adir Rahamim
是的,下一个你想激活的... 对我来说很好用。 - s_bei
非常感谢,我会尝试的。另外,请问下一个按钮在哪里?它可以替代键盘上的回车键吗? - Adir Rahamim

3

这是我的editText的样子,它有下一步按钮并且执行的操作是

<EditText
        android:id="@+id/typefish"
        android:layout_width="370dp"
        android:layout_height="wrap_content"

        android:singleLine="true" />

它之后的那个或最后一个也有

android:imeOptions="actionDone"

你好,感谢回答。我需要在每个editText中添加android:imeOptions="actionDone"这一行吗?非常感谢。 - Adir Rahamim
那么,它是如何知道要从第一个editText跳转到第二个editText的呢? - Adir Rahamim
我猜最后一个editText上的android:imeOptions="actionDone"会让它之前的editText知道在它后面还有其他的editText,直到最后一个。在这种情况下,编辑文本将完成。 - JRowan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接