Как определить действие custon для клавиши ввода программной клавиатуры для EditText?

#android #android-studio #android-edittext

#Android #android-studio #android-edittext

Вопрос:

Я хочу выполнить действие, когда пользователь нажимает return key (EnterKey) в фокусе EditText . Это единственное EditText в моем фрагменте. Моя цель — получить текст из этого EditText , очистить EditText и дождаться следующего ввода.

Вот мой код:

 ...
addTodoEditText = rootView.findViewById(R.id.addTodo_EditText_FragmentTodo);
addTodoEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                doMyFunction(); //I wan't to do my work here.
                return false;
            }
        });
...
  

и это мой EditText :

 <EditText
        android:id="@ id/addTodo_EditText_FragmentTodo"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:hint="Add New Todo"
        android:lines="1"
        android:imeOptions="actionDone"
        android:inputType="text"
        android:background="@drawable/checkbox_drawable"
        android:textAppearance="@style/textRegular"/>
  

Как я могу решить эту проблему? Пожалуйста, помогите!

Ответ №1:

Добавьте это условие:

 addTodoEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if (actionId == EditorInfo.IME_ACTION_DONE) {
                doYourFunction();
                return true;
            }
        return false;
        }
});