Подтвердить что ты не робот

Возврат ключа edittext Android переходит к следующему тексту

У меня есть серия записей EditText и хотелось бы, чтобы, когда пользователь нажимает клавишу ввода, он перейдет к следующему Editext. Я знаю, как это сделать за один раз, но есть способ сообщить всем элементам управления edittext использовать ту же функцию, которая проверяет ввод ключа и продвигает курсор. Кажется сумасшедшим иметь одну функцию для каждого из EditTexts

4b9b3361

Ответ 1

Намного проще, чем обнюхивать ключи: попробуйте установить android:singleLine="true" и android:imeOptions="actionNext" (по крайней мере, для однострочных текстовых просмотров). Подробнее читайте в документации для TextView.

Обновление: singleLine устарело, но вы можете его оставить. Это поведение по умолчанию для редактируемого текста, если вы явно не устанавливаете android:inputType="textMultiLine", а inputType в любом случае переопределяет предлагаемую замену singleLine maxLines="1" для редактируемого текста.

Ответ 2

Для альтернативного или более нового подхода для ответа, полученного от Йони...

Так как singleLine считается устаревшим, мы можем установить вручную android:maxLines="1" с помощью android:inputType="text".

Небольшое объяснение:

  • Мы используем android:inputType="text" специально для обработки ввода как обычного текста.
  • И мы используем android:maxLines="1", чтобы установить максимальные строки текста в 1 (как он подсказывает).

Использование только maxLines="1" не вызовет какого-либо эффекта, но только inputType="text" может работать также, как упоминает Адам (хотя я этого не проверял).

Ответ 3

Вы можете попробовать добавить один прослушиватель событий ко всем объектам editText:

OnKeyListener myKeyListener = new OnKeyListener() {
        @Override
        public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
            // TODO: do what you got to do
            return false;
        }
    };
editText1.setOnKeyListener(myKeyListener);
editText2.setOnKeyListener(myKeyListener);
editText3.setOnKeyListener(myKeyListener);

Ответ 4

Добавление

    android:inputType="text"

в XML достаточно. Когда вы не определяете тип ввода, он переходит к следующей строке.

Ответ 5

Применить этот пользовательский стиль в styles.xml

<style name="SingleLineText">
    <item name="android:inputType">text</item>
    <item name="android:maxLines">1</item>
</style>

а затем установите его в EditText, как этот

 style="@style/SingleLineText"