专注于自定义对话框中的最后一个edittext不起作用

时间:2017-09-04 08:11:28

标签: android android-edittext focus customdialog

在我的应用程序中,我使用了一个带有三个编辑文本的Custum Dialog(android.app.Dialog)。当我按下SoftKeyboard上的下一个按钮时,我可以设置从第一个到第二个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上? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

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

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