小编典典

在 Android 上单击软键盘 Next 时移动到另一个 EditText

all

当我按下“下一步”时,用户 EditText 上的焦点必须移至密码。然后,从密码,它必须向右移动,依此类推。你能帮助我如何编码吗?

在此处输入图像描述

<LinearLayout
    android:id="@+id/LinearLayout01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/username"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="User Name*" />

    <EditText
        android:id="@+id/txt_User"
        android:layout_width="290dp"
        android:layout_height="33dp"
        android:singleLine="true" />

</LinearLayout>


<LinearLayout
    android:id="@+id/LinearLayout02"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/password"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Password*" />

    <EditText
        android:id="@+id/txt_Password"
        android:layout_width="290dp"
        android:layout_height="33dp"
        android:singleLine="true"
        android:password="true" />

    <TextView
        android:id="@+id/confirm"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Password*" />

    <EditText
        android:id="@+id/txt_Confirm"
        android:layout_width="290dp"
        android:layout_height="33dp"
        android:singleLine="true"
        android:password="true" />

</LinearLayout>

阅读 67

收藏
2022-05-27

共1个答案

小编典典

焦点处理

焦点移动基于一种算法,该算法在给定方向上找到最近的邻居。在极少数情况下,默认算法可能与开发人员的预期行为不匹配。

使用以下 XML 属性更改定向导航的默认行为:

android:nextFocusDown="@+id/.."  
android:nextFocusLeft="@+id/.."    
android:nextFocusRight="@+id/.."    
android:nextFocusUp="@+id/.."

除了定向导航,您还可以使用标签导航。为此,您需要使用

android:nextFocusForward="@+id/.."

要使特定视图成为焦点,请致电

view.requestFocus()

要收听某些变化的焦点事件,请使用View.OnFocusChangeListener


键盘按钮

您可以使用它android:imeOptions来处理键盘上的那个额外按钮。

您可以在与编辑器关联的 IME 中启用其他功能,以改进与您的应用程序的集成。这里的常量对应于imeOptions定义的常量。

imeOptions 的常量包括各种动作和标志,请参阅上面的链接了解它们的值。

值示例

下一步行动

操作键执行“下一个”操作,将用户带到下一个接受文本的字段。

行动完成

操作键执行“完成”操作,通常意味着无需输入任何内容,IME 将关闭。

代码示例:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="32dp"
        android:layout_marginTop="16dp"
        android:imeOptions="actionNext"
        android:maxLines="1"
        android:ems="10" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editText1"
        android:layout_below="@+id/editText1"
        android:layout_marginTop="24dp"
        android:imeOptions="actionDone"
        android:maxLines="1"
        android:ems="10" />

</RelativeLayout>

如果您想收听 imeoptions
事件,请使用TextView.OnEditorActionListener.

editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_SEARCH) {
            performSearch();
            return true;
        }
        return false;
    }
});

2022-05-27