Я пытался заставить это работать последние три часа, и теперь мне нужна ваша помощь. Я просто хочу, чтобы записать текст из моего EditText, когда пользователь нажимает кнопку «Готово»:Почему я не могу написать текст?
e.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
Log.v(TAG, "KEYCODE: " +keyCode);
Toast.makeText(MainActivity.this, "" +keyCode, Toast.LENGTH_SHORT).show();
if ((keyCode == EditorInfo.IME_ACTION_DONE) && (event.getAction() == KeyEvent.ACTION_DOWN)) {
Log.v(TAG, "DONE!");
Toast.makeText(MainActivity.this, "" +e.getText(), Toast.LENGTH_LONG).show();
return false;
}
return false;
}
});
Вот XML:
<EditText
android:layout_width="100dp"
android:layout_height="wrap_content"
android:id="@+id/editText"
android:layout_alignBottom="@+id/textView4"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_toRightOf="@+id/textView4"
android:layout_toEndOf="@+id/textView4"
android:imeOptions="actionDone"
android:inputType="text"
/>
Проблема заключается в том, что мой onKey
даже не показывая никаких тостов, и я не могу получить пользовательский ввод, когда они нажмут. Я попытался изменить так много вещей в моем if-заявлении, но теперь даже onKey
не получает вызов. Что я делаю не так?
Спасибо, что нашли время, чтобы ответить на мой вопрос :)
Спасибо так много, вы решить мою проблему, я застрял в течение нескольких часов. Тогда для чего нужно использовать KeyListener? –
Опять же из документов 'его следует использовать только в тех случаях, когда приложение имеет свою собственную экранную клавиатуру, а также хочет обрабатывать жесткие события клавиатуры, чтобы соответствовать им. Так что, угадывая, когда вы создаете пользовательскую клавиатуру, возможно, это может быть использовано для соответствия событиям клавиатуры. – Antrromet
Если я хочу скрыть клавиатуру после того, как они нажмут, я могу просто вернуть false, правильно? –