Проблема с Android: EditText, KeyListener и физическая кнопка возврата - PullRequest
5 голосов
/ 23 февраля 2011

В моей работе реализован KeyListener, а для моего edittext установлен прослушиватель ключей.

editor = new EditText(this);
        editor.setMinLines(4);
        editor.setMinimumWidth(400);
        editor.setKeyListener(this);

Когда пользователь что-то печатает и нажимает «ввод» на программной клавиатуре, текстовый вид текста устанавливается на ввод пользователя.

@Override
public int getInputType() {

    return InputType.TYPE_TEXT_FLAG_MULTI_LINE;
}


@Override
public boolean onKeyDown(View view, Editable text, int keyCode,
        KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_ENTER){

        outview.setText(editor.getText());
    }
    return true;
}

Здесь outview - это TextView. Моя проблема в том, что в этом упражнении физическая кнопка возврата не работает. Нажмите на нее, и ничего не происходит. Любой совет будет приветствоваться.

Ответы [ 2 ]

4 голосов
/ 23 февраля 2011

Возвращая true из функции onKeyDown, вы сообщаете Android, что обработали все ключевые события.Вместо этого верните true только в случае клавиши ввода.Верните false в противном случае.Это позволит Android обрабатывать нажатие кнопки «назад».

0 голосов
/ 23 декабря 2014

найти ввод программной клавиатуры

txt.setOnKeyListener(new OnKeyListener() {

    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN) 
        {
                  outview.setText(editor.getText());
        }
        return true;
    }
});
...