专注于自定义对话框中的最后一个编辑文本不起作用

Focus on last edittext in Custom Dialog doesn't work

在我的应用程序中,我使用了自定义对话框 (android.app.Dialog),其中包含三个编辑文本。当我按下 SoftKeyboard 上的下一个按钮时,我可以将下一个焦点从第一个 EditText 设置到第二个 EditText,但是将焦点设置在第三个 EditText 上不起作用。我已经尝试设置 nextFocusForward 或 nextFocusDown 等等,但它仍然不起作用。

这是我的自定义对话框中的 XML 布局:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/addcard_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        android:adjustViewBounds="true"
        android:scaleType="fitCenter"
        android:src="@drawable/dialog_addcard_info" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <EditText
            android:id="@+id/addcard_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="16dp"
            android:layout_marginRight="16dp"
            android:hint="@string/name"
            android:inputType="text"
            android:lines="1"
            android:maxLines="1"
            android:scrollHorizontally="true" />

        <EditText
            android:id="@+id/addcard_number"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="16dp"
            android:layout_marginRight="16dp"
            android:layout_marginTop="8dp"
            android:hint="@string/number"
            android:inputType="number"
            android:maxLength="16"
            android:scrollHorizontally="true"/>

        <EditText
            android:id="@+id/addcard_pin"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="16dp"
            android:layout_marginRight="16dp"
            android:layout_marginTop="8dp"
            android:hint="@string/pin"
            android:inputType="numberPassword"
            android:maxLength="4"
            android:textSize="14sp"
            android:scrollHorizontally="true"/>
    </LinearLayout>


    <TextView
        android:id="@+id/addcard_errormessage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="25dp"
        android:paddingLeft="16dp"
        android:paddingRight="16dp"
        android:text="@string/error"
        android:textColor="#ff0000"
        android:textStyle="bold"
        android:visibility="gone" />

    <Button
        android:id="@+id/addcard_verify"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        android:text="@string/verify" />
</LinearLayout>

有谁知道为什么我无法将焦点设置在第三个 EditText 上? 提前致谢。

在你的代码中试试这个:)

<EditText
   android:id="@+id/addcard_number"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_marginLeft="16dp"
   android:layout_marginRight="16dp"
   android:layout_marginTop="8dp"
   android:hint="@string/number"
   android:inputType="number"
   android:maxLength="16"
   android:imeOptions="actionNext" // try this one
   android:nextFocusDown="@+id/addcard_errormessage" // and add this one
   android:scrollHorizontally="true"/>