[英]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.