【问题标题】:Focus on last edittext in Custom Dialog doesn't work专注于自定义对话框中的最后一个编辑文本不起作用
【发布时间】:2017-09-04 08:11:28
【问题描述】:

在我的应用程序中,我使用了一个自定义对话框 (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:imeOptions="actionNext" 应该可以。我猜你要找的是this

标签: android android-edittext focus customdialog


【解决方案1】:

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

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

【讨论】:

  • 只需添加 imeOptions 就可以了,感谢 G.Dator 和 Sakchham Sharma
猜你喜欢
  • 2012-02-06
  • 2016-12-05
  • 2011-04-18
  • 1970-01-01
  • 2013-11-01
  • 2013-02-05
  • 2014-04-22
  • 1970-01-01
  • 2019-12-27
相关资源
最近更新 更多