Edittext переходит к следующему тексту редактирования, но неправильно

1

Мне нужна помощь в моем приложении. Это мой xml файл с относительной компоновкой, и мне нужно перейти к следующему редактору после нажатия клавиши Enter. Но есть проблема, если я пишу в editTextKm и нажимаю клавишу Enter, она перескакивает на editTextFullTank, но мне нужно перейти к editTextManufactYear. Как это сделать?

    <EditText
        android:id="@+id/editTextSPZ"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"            
        android:maxLength="11"
        android:inputType="textCapCharacters"/>

    <EditText
        android:id="@+id/editTextKm"
        android:layout_width="180dp"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"            
        android:layout_below="@+id/editTextSPZ"
        android:inputType="number" 
        android:maxLength="7"/>

    <EditText
        android:id="@+id/editTextManufactYear"
        android:layout_width="120dp"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editTextKm"
        android:layout_alignBottom="@+id/editTextKm"
        android:layout_alignParentRight="true"
        android:layout_marginRight="2dp"
        android:layout_toRightOf="@+id/editTextKm"           
        android:inputType="number"
        android:maxLength="4" />

    <EditText
        android:id="@+id/editTextFullTank"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"            
        android:layout_below="@+id/editTextKm"
        android:inputType="number" 
        android:maxLength="3"/>

    <EditText
        android:id="@+id/editTextReserveTank"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/editTextManufactYear"            
        android:layout_toRightOf="@+id/editTextFullTank"            
        android:inputType="number"
        android:maxLength="3" />        

     <EditText
        android:id="@+id/editTextNote"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"            
        android:layout_below="@+id/editTextFullTank"            
        android:capitalize="sentences"
        android:singleLine="false"/>
Теги:
android-layout

2 ответа

6

Для получения дополнительной информации вы можете обратиться к блогу разработчиков Anddroid Developer.

Движение фокуса основано на алгоритме, который находит ближайшего соседа в заданном направлении. В редких случаях алгоритм по умолчанию может не соответствовать предполагаемому поведению разработчика. В этих ситуациях вы можете предоставить явные переопределения, используя эти атрибуты XML в файле макета:

                    android:nextFocusLeft="reference"
                    android:nextFocusRight="reference"
                    android:nextFocusUp="reference"
                    android:nextFocusDown="reference"
0

добавьте атрибуты:

android:nextFocusDown="@id/your_next_edit_text_to_focus" для каждого EditText соответствии с тем, что вам нужно.

Вы также можете использовать:

android:nextFocusUp="@id/your_next_edit_text_to_focus"
android:nextFocusLeft="@id/your_next_edit_text_to_focus"
android:nextFocusRight="@id/your_next_edit_text_to_focus"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню