Android问题:EditText,KeyListener和物理后退按钮

时间:2011-02-23 02:06:15

标签: android keylistener android-softkeyboard android-edittext

我的活动实现了KeyListener,我的edittext设置了一个密钥监听器。

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

当用户键入内容并按下软键盘上的“enter”时,textview的文本将设置为用户输入。

@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 个答案:

答案 0 :(得分:4)

true函数返回onKeyDown,即表示您已通知Android您已处理了所有关键事件。相反,只有在输入键的情况下才返回true。否则返回false。这将允许Android按下后退键按钮。

答案 1 :(得分:0)

  

找到软键盘的输入

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;
    }
});