Мой макет имеет 4 вида EditText и представление кнопки отправки. Мне нужно иметь кнопку "Далее" для первых 3 EditText и кнопку "Готово" для 4-го поля EditText вместо клавиши "New Line" на мягкой клавиатуре.
Как это можно сделать?
Мой макет имеет 4 вида EditText и представление кнопки отправки. Мне нужно иметь кнопку "Далее" для первых 3 EditText и кнопку "Готово" для 4-го поля EditText вместо клавиши "New Line" на мягкой клавиатуре.
Как это можно сделать?
В вашем макете просто установите атрибуты XML android:imeOptions="actionNext"
для первых трех текстовых полей и android:imeOptions="actionDone"
для последнего.
Смотрите: документация android: imeOptions
Кроме того, есть небольшой пример XML в учебных документах.
чтобы перейти к следующему полю редактирования, добавьте
Android: imeOptions = "flagNavigateNext"
и для отклонения функциональной клавиши нажатием кнопки add
Android: imeOptions = "actionDone"
на вашем макете:)
Добавьте android:singleLine="true"
в свою кнопку xml
Я думаю, что вы ищете что-то вроде этого:
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 (мягкая клавиатура).