简体   繁体   English

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

[英]Android Problem: EditText, KeyListener and the physical Back Button

My activity implements KeyListener and my edittext has a key listener set. 我的活动实现了KeyListener,我的edittext有一个键监听器集。

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

WHen the user types something and presses "enter" on the softkeyboard a textview's text is set to the users input. 当用户键入内容并按下软键盘上的“输入”时,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;
}

Here outview is a TextView. 这里的outview是一个TextView。 My problem is that in this activity the physical back button doesn't work. 我的问题是,在此活动中,物理后退按钮不起作用。 Press it and nothing happens. 按下它没有任何反应。 ANy advice would be welcomed. 任何建议都会受到欢迎。

By returning true from the onKeyDown function, you are informing Android that you have handled all key events. 通过从onKeyDown函数返回true ,您通知Android您已处理所有关键事件。 Instead, only return true in the case of the enter key. 相反,只有在输入键的情况下才返回true。 Return false otherwise. 否则返回false This will allow Android to handle the back button key press. 这将允许Android按下后退按钮。

find enter of softkeyboard 找到软键盘的输入

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM