Edittext переходит к следующему тексту редактирования, но неправильно - PullRequest
2 голосов
/ 29 января 2012

Мне нужна помощь с моим приложением. Это мой 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"/>

Ответы [ 2 ]

7 голосов
/ 29 января 2012

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

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

                    android:nextFocusLeft="reference"
                    android:nextFocusRight="reference"
                    android:nextFocusUp="reference"
                    android:nextFocusDown="reference"
1 голос
/ 29 января 2012

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

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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...