在键盘中按下下一个按钮时移动到最近的edittext元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在键盘中按下下一个按钮时移动到最近的edittext元素相关的知识,希望对你有一定的参考价值。

UPDATE

我想尽可能使用XML实现这个目标,因为我有太多2个列圆柱布局。我不知道问题是使用LinearLayout(只是猜测)还是别的。我按顺序绘制它们(从街道 - > Brgy - > City - > ZipCode等)这就是为什么我很困惑为什么它不按照我创建它们的顺序朝着正确的方向前进


只需要我的XML / UI帮助。我有一个EditTexts的2列设计,我的目标是当我从左侧元素的键盘旁边按下时,它将转到右侧元素然后在左下角旁边,依此类推(根据照片附件底部:从街道 - > Brgy - > City - > ZipCode等)。

但是当我按下它时,我遇到了问题,它一直在下降。当我在左侧元素时,它在左下侧并且在右侧元素上相同,它向右下方。如何根据我的目标制作模式?尝试了这些,但仍然出现问题。

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

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

XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/TitleLayout1"
        android:layout_marginLeft="@dimen/marginSide1"
        android:layout_marginRight="@dimen/marginSide1"
        android:minHeight="25px"
        android:layout_marginTop="@dimen/marginTop2"
        android:background="@color/white">
        <LinearLayout
            android:orientation="horizontal"
            android:minWidth="25px"
            android:minHeight="20px"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/TitleBackround1"
            android:background="@color/bluegreendark"
            android:layout_gravity="center" />
        <TextView
            android:text="Personal Data"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/PDRN_Title1"
            android:background="@color/white"
            android:textColor="@color/darkgray"
            android:paddingLeft="@dimen/paddingSide1"
            android:paddingRight="@dimen/paddingSide1"
            android:layout_gravity="center"
            android:fontFamily="@string/fontFamily"
            android:textSize="@dimen/textSizeHeader" />
    </FrameLayout>
    <LinearLayout
        android:orientation="vertical"
        android:minWidth="25px"
        android:minHeight="25px"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/linearLayoutApplicant">
        <TextView
            android:text="Applicant"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textColor="@color/lightgray"
            android:layout_marginLeft="@dimen/marginSide1"
            android:layout_marginTop="@dimen/marginSide1"
            android:fontFamily="@string/fontFamily"
            android:textStyle="bold" />
        <LinearLayout
            android:orientation="horizontal"
            android:layout_height="wrap_content"
            android:id="@+id/linearLayoutStreet"
            android:layout_marginLeft="@dimen/marginSide2"
            android:layout_marginRight="@dimen/marginSide2"
            android:weightSum="100"
            android:layout_width="match_parent">
            <EditText
                android:inputType="textPostalAddress"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:id="@+id/PD_Street"
                android:hint="Street"
                android:layout_weight="50"
                android:textColor="@color/darkgray"
                android:textSize="@dimen/textSizeCommon"
                android:fontFamily="@string/fontFamily"
                android:singleLine="true"
                android:nextFocusForward="@+id/PD_Baranggay" <!--Just tried it here-->
                android:nextFocusRight="@+id/PD_Baranggay"  <!--Just tried it here-->             
                android:maxLength="@string/genericLongLength" />
            <EditText
                android:inputType="textPostalAddress"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:id="@+id/PD_Baranggay"
                android:hint="Brgy"
                android:layout_weight="50"
                android:textColor="@color/darkgray"
                android:textSize="@dimen/textSizeCommon"
                android:fontFamily="@string/fontFamily"
                android:singleLine="true"
                android:maxLength="@string/genericLongLength" />
        </LinearLayout>
    </LinearLayout>
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/linearLayoutZipCode"
        android:layout_marginLeft="@dimen/marginSide2"
        android:layout_marginRight="@dimen/marginSide2"
        android:weightSum="100">
        <EditText
            android:inputType="textPostalAddress"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:id="@+id/PD_City"
            android:layout_weight="50"
            android:hint="City"
            android:textColor="@color/darkgray"
            android:textSize="@dimen/textSizeCommon"
            android:fontFamily="@string/fontFamily"
            android:singleLine="true"
            android:maxLength="@string/genericLength" />
        <EditText
            android:inputType="number"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:id="@+id/PD_ZipCode"
            android:layout_weight="50"
            android:hint="Zip Code"
            android:textColor="@color/darkgray"
            android:textSize="@dimen/textSizeCommon"
            android:fontFamily="@string/fontFamily"
            android:singleLine="true"
            android:maxLength="@string/yearLength" />
    </LinearLayout>
    <LinearLayout
        android:orientation="horizontal"
        android:layout_height="wrap_content"
        android:id="@+id/linearLayoutMobile"
        android:layout_marginLeft="@dimen/marginSide1"
        android:layout_marginRight="@dimen/marginSide1"
        android:weightSum="100"
        android:layout_width="match_parent">
        <EditText
            android:inputType="phone"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:id="@+id/PD_Telephone"
            android:hint="Telephone"
            android:layout_weight="50"
            android:textColor="@color/darkgray"
            android:textSize="@dimen/textSizeCommon"
            android:fontFamily="@string/fontFamily"
            android:singleLine="true"
            android:maxLength="@string/contactLength" />
        <EditText
            android:inputType="phone"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:id="@+id/PD_MobileNumber"
            android:hint="Mobile"
            android:layout_weight="50"
            android:textColor="@color/darkgray"
            android:textSize="@dimen/textSizeCommon"
            android:fontFamily="@string/fontFamily"
            android:singleLine="true"
            android:maxLength="@string/contactLength" />
    </LinearLayout>
    <LinearLayout
        android:orientation="horizontal"
        android:layout_height="wrap_content"
        android:id="@+id/linearLayoutOccularInspected"
        android:layout_marginLeft="@dimen/marginSide1"
        android:layout_marginRight="@dimen/marginSide1"
        android:weightSum="100"
        android:layout_width="match_parent">
        <EditText
            android:inputType="numberDecimal"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:id="@+id/PD_LengthOfStay"
            android:hint="Yrs of Stay"
            android:layout_weight="50"
            android:textColor="@color/darkgray"
            android:textSize="@dimen/textSizeCommon"
            android:fontFamily="@string/fontFamily"
            android:singleLine="true"
            android:maxLength="@string/numberDecimalLength" />
        <CheckBox
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:id="@+id/PD_OccularInspected"
            android:text="Occular Inspected"
            android:layout_weight="50"
            android:textColor="@color/darkgray"
            android:textSize="@dimen/textSizeCommon"
            android:fontFamily="@string/fontFamily" />
    </LinearLayout>
    <EditText
        android:inputType="textPostalAddress"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/PD_ProvincialAddress"
        android:hint="Provincial Address"
        android:layout_marginLeft="@dimen/marginSide1"
        android:layout_marginRight="@dimen/marginSide1"
        android:textColor="@color/darkgray"
        android:textSize="@dimen/textSizeCommon"
        android:fontFamily="@string/fontFamily"
        android:singleLine="true"
        android:maxLength="@string/addressLength" />
    <LinearLayout
        android:orientation="horizontal"
        android:layout_height="wrap_content"
        android:id="@+id/linearLayoutCivilStatus"
        android:layout_marginLeft="@dimen/marginSide1"
        android:layout_marginRight="@dimen/marginSide1"
        android:weightSum="100"
        android:layout_width="match_parent">
        <Spinner
            android:minWidth="25px"
            android:minHeight="25px"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/PD_CivilStatus"
            android:layout_weight="50"
            android:spinnerMode="dialog"
            style="@style/Widget.AppCompat.Spinner.Underlined"
            android:textSize="@dimen/textSizeCommon"
            android:fontFamily="@string/fontFamily"
            android:layout_marginTop="@dimen/marginNegativeTop2" />
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/PDRN_EditTextCivilStatusOthers"
            android:layout_weight="50"
            android:hint="Pls specify"
            android:textColor="@color/darkgray"
            android:textSize="@dimen/textSizeCommon"
            android:fontFamily="@string/fontFamily"
            android:visibility="gone"
            android:singleLine="true"
            android:maxLength="@string/otherLength" />
    </LinearLayout>
    <EditText
        android:inputType="number"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="@dimen/marginSide1"
        android:layout_marginRight="@dimen/marginSide1"
        android:id="@+id/PD_NumberOfDependents"
        android:hint="No. of Dependents"
        android:textColor="@color/darkgray"
        android:textSize="@dimen/textSizeCommon"
        android:fontFamily="@string/fontFamily"
        android:singleLine="true"
        android:maxLength="@string/numberLength" />
    <LinearLayout
        android:orientation="horizontal"
        android:layout_height="wrap_content"
        android:id="@+id/linearLayoutSubjectNationality"
        android:layout_marginLeft="@dimen/marginSide1"
        android:layout_marginRight="@dimen/marginSide1"
        android:weightSum="100"
        android:layout_width="match_parent">
        <Spinner
            android:minWidth="25px"
            android:minHeight="25px"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="50"
            android:id="@+id/PD_SpinnerSubjectNationality"
            android:spinnerMode="dialog"
            style="@style/Widget.AppCompat.Spinner.Underlined"
            android:textSize="@dimen/textSizeCommon"
            android:fontFamily="@string/fontFamily"
            android:layout_marginTop="@dimen/marginNegativeTop2" />
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/PD_EditTextSubjectNationalityACR"
            android:hint="ACR No."
            android:layout_weight="50"
            android:textColor="@color/darkgray"
            android:textSize="@dimen/textSizeCommon"
            android:fontFamily="@string/fontFamily"
            android:visibility="gone"
            android:singleLine="true"
            android:maxLength="@string/genericLength" />
    </LinearLayout>
    <LinearLayout
        android:orientation="horizontal"
        android:layout_height="wrap_content"
        android:id="@+id/linearLayoutSpouseNationality"
        android:layout_marginLeft="@dimen/marginSide1"
        android:layout_marginRight="@dimen/marginSide1"
        android:weightSum="100"
        android:layout_width="match_parent">
        <Spinner
            android:minWidth="25px"
            android:minHeight="25px"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="50"
            android:id="@+id/PD_SpinnerSpouseNationality"
            android:spinnerMode="dialog"
            style="@style/Widget.AppCompat.Spinner.Underlined"
            android:textSize="@dimen/textSizeCommon"
            android:fontFamily="@string/fontFamily"
            android:layout_marginTop="@dimen/marginNegativeTop2" />
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/PD_EditTextSpouseNationalityACR"
            android:hint="ACR No."
            android:layout_weight="50"
            android:textColor="@color/darkgray"
            android:textSize="@dimen/textSizeCommon"
            android:fontFamily="@string/fontFamily"
            android:visibility="gone"
            android:singleLine="true"
            android:maxLength="@string/genericLength" />
    </LinearLayout>
</LinearLayout>

见附图

next1 next2

答案

只需将此添加到您的EditText

android:imeOptions="actionNext"
android:nextFocusDown="@+id/yourNextEditText"

像这个。

<EditText
  android:inputType="textPostalAddress"
  android:layout_width="0dp"
  android:layout_height="wrap_content"
  android:id="@+id/PD_Street"
  android:hint="Street"
  android:layout_weight="50"
  android:textColor="@color/darkgray"
  android:textSize="@dimen/textSizeCommon"
  android:fontFamily="@string/fontFamily"
  android:singleLine="true"
  android:imeOptions="actionNext" <!--ADD THIS LINE -->
  android:nextFocusDown="@+id/PD_Barangay" <!--ADD THIS LINE -->
  android:nextFocusForward="@+id/PD_Baranggay" <!--REMOVE THIS LINE-->
  android:nextFocusRight="@+id/PD_Baranggay"  <!--REMOVE THIS LINE-->             
  android:maxLength="@string/genericLongLength" />

并在其他EditText组件中执行此操作,您需要专注于按Next按钮。

以上是关于在键盘中按下下一个按钮时移动到最近的edittext元素的主要内容,如果未能解决你的问题,请参考以下文章

在 Ionic 2 中按下硬件按钮时 Select2 不隐藏

使用redux-form按下下一个键盘按钮后如何使用useRef钩子选择下一个TextInput

在 jQuery Mobile / Mobile Safari 中按下提交后不要隐藏键盘

如何在使用redux格式按下下一个键盘按钮后如何使用useRef钩子来选择下一个TextInput

在移动 Safari 中按下后退按钮后,Javascript 停止在 iframe 中执行

EnterKey 在 VBA 用户窗体中按下按钮