Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Ranny
0 / 0 / 1
Регистрация: 29.07.2015
Сообщений: 10
#1

Обработка нажатия на Enter - Программирование Android

10.09.2015, 09:38. Просмотров 250. Ответов 0
Метки нет (Все метки)

Имеется RecyclerView, заполняемый обьектами CardView, которые состоят из 2 EditText, расположенных горизонтально, CardView распологаются вертикально.
Обрабатываю событие нажатия Enter при вводе текста в EditText
Java
1
2
3
4
5
6
7
8
9
10
11
CritViewHolder.critName.setOnKeyListener(new View.OnKeyListener() {
                public boolean onKey(View v, int keyCode, KeyEvent event) {
                    if (event.getAction() == KeyEvent.ACTION_DOWN &&
                            (keyCode== KeyEvent.KEYCODE_ENTER)) {
                        temp.setCriteriaName(CritViewHolder.critName.getText().toString());
 
                        return true;
                    }
                    return false;
                }
            });
работает более менее. Не нравится одна вещь фокус элемента после нажатия на enter смещается не вниз, а по диагонали(если EditText был выделен вручную), но если фокус получен программно смещение идет вниз.
Хотелось бы сделать одно из 2:
1)при нажатии Enter фокус не смещается, клавиатура сворачивается
2)при нажатии Enter фокус всегда смещается вниз, клавиатура не сворачивается

пробовал разные варианты imeOptions но либо 0 изменений, либо не срабатывает условие if(оно конечно понятно почему не срабатывает, но подходящий KeyEvent тоже искал и не нашел) со всеми вытекающими.

Вопрос в том какие сочетания KeyEvent и imeOptions дадут требуемый результат?

Есть еще вариант как-то забиндить значение текста в EditText/ значения адаптера к полям класса, но тут тоже не особо успешны поиски

Добавлено через 1 час 48 минут
Решено
Java
1
2
3
4
5
6
7
8
9
10
11
12
            CritViewHolder.critName.setOnEditorActionListener(new EditText.OnEditorActionListener() {
                @Override
                public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                    if (actionId == EditorInfo.IME_ACTION_DONE) {
                        temp.setCriteriaName(CritViewHolder.critName.getText().toString());
                        hideKeyboard();
                        return true;
                    }
                    return false;
                }
 
            });
imeOptions="actionDone"
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.09.2015, 09:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обработка нажатия на Enter (Программирование Android):

EditText обработчик нажатия на Enter - Программирование Android
Всем привет! Не могу понять, почему не работает код: final EditText editText = (EditText)findViewById(R.id.editText); ...

Обработка нажатия кнопок - Программирование Android
Здравствуйте! Недавно начал изучать программирование под Android. Узнал что для обработки нажатия кнопок используется как минимум 2...

Обработка нажатия кнопок - Программирование Android
Всем привет! Целый день мучала проблема. Что имею: телефон по bluetooth подключается к arduino и передает туда байты, в дуине это...

Обработка длительного нажатия - Программирование Android
В игре нужно перемещать предмет тогда, когда палец на экране: пальцем касаюсь экрана (не важно, в какой области и сколько времени) и...

Обработка нажатия EditText - Программирование Android
Необходимо реализовать поля ввода дат для задания периода. Так как надо по дизайну чтобы подсказка всплывала как в TextInputLayout,...

Обработка длительного нажатия - Программирование Android
Добрый День! Пишу на libGdx и столкнулся с проблемой: нужно считывать время нажатия на экран. В зависимости от время нажатия на экран будут...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.09.2015, 09:38
Привет! Вот еще темы с ответами:

Обработка нажатия по координатам - Программирование Android
Есть ImageView (.png). Нужно обработать нажатия через OnTouchListener в 3-х местах этого png файла. Область каждого нажатия - круг...

Обработка нажатия на RadioButton - Программирование Android
Постигаю андроид. Не могу разобраться со свичем. EditText принимает число, сохранил его, дальше выбираю RadioBatton и нифига не...

AlertDialog обработка нажатия PositiveButton - Программирование Android
Можно сделать так чтобы при нажатии на PositiveButton диалог не закрывался? AlertDialog.Builder builder = new...

Обработка нажатия CheckBox в ListView - Программирование Android
Привет, Есть ListView на основе BaseAdapter. Каждый элемент содержит TextView и несколько чекбоксов. Как обработать нажатие на конкретный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru