Изменить поведение клавиши действия Android с imeOptions не работает

Я пытаюсь перейти от элемента TextView к следующему редактируемому объекту в моей деятельности Android. Следующий объект - это элемент ListView, который можно редактировать. Я пытался использовать imeOptions, но он по-прежнему выполняет новую строку в объекте TextEdit. Мой XML выглядит так:

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:hint="@string/question_hint"
            android:id="@+id/questionField"
            android:textColor="@color/text_color"
            android:textCursorDrawable="@null"
            android:maxLength="@integer/question_length"
            android:imeOptions="actionNext"/>
        <!--android:minLines="2"-->

Я также добавил кодовую строку в метод действия oncreate:

questionField = (EditText) findViewById(R.id.questionField);
questionField.setImeOptions(EditorInfo.IME_ACTION_NEXT);

Но это не работает. У кого-нибудь есть идея? Спасибо

1 ответ

Попробуйте что-то вроде этого:

questionField.setOnEditorActionListener(
            new TextView.OnEditorActionListener() {
                public boolean onEditorAction(TextView exampleView,
                        int actionId, KeyEvent event)
                {

                    if ((actionId == EditorInfo.IME_ACTION_DONE
                            || actionId == EditorInfo.IME_ACTION_NEXT
                            || actionId == EditorInfo.IME_ACTION_GO
                            || (event != null
                                    && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)))
                    {

                        return nextView.requestFocus()  // the next view you want the focus to be on
                    }
                    else
                    {
                        return false;
                    }
                }
            });
Другие вопросы по тегам