Кнопка Android Soft Keyboard

Мой макет имеет 4 вида EditText и представление кнопки отправки. Мне нужно иметь кнопку "Далее" для первых 3 EditText и кнопку "Готово" для 4-го поля EditText вместо клавиши "New Line" на мягкой клавиатуре.

Как это можно сделать?

Ответ 1

В вашем макете просто установите атрибуты XML android:imeOptions="actionNext" для первых трех текстовых полей и android:imeOptions="actionDone" для последнего.

Смотрите: документация android: imeOptions

Кроме того, есть небольшой пример XML в учебных документах.

Ответ 2

чтобы перейти к следующему полю редактирования, добавьте

Android: imeOptions = "flagNavigateNext"

и для отклонения функциональной клавиши нажатием кнопки add

Android: imeOptions = "actionDone"

на вашем макете:)

Ответ 3

Добавьте android:singleLine="true" в свою кнопку xml

Ответ 4

Я думаю, что вы ищете что-то вроде этого:

EditText nextText = new EditText(this)
{
    @Override
    public InputConnection onCreateInputConnection(final EditorInfo outAttrs)
    {
        outAttrs.imeOptions |= EditorInfo.IME_ACTION_NEXT;
        return (super.onCreateInputConnection(outAttrs));
    }
};

EditText doneText = new EditText(this)
{
    @Override
    public InputConnection onCreateInputConnection(final EditorInfo outAttrs)
    {
        outAttrs.imeOptions |= EditorInfo.IME_ACTION_DONE;
        return (super.onCreateInputConnection(outAttrs));
    }
};

Сначала сначала пользователь переходит к следующему полю в макете, который принимает текст. Второй закроет IME (мягкая клавиатура).