我正在开发一个消息传递应用程序,其中我有一个EditText供用户输入他的消息。我在键盘上使用setImeOptions()
方法提供了“发送”按钮。但是,每当用户点击“发送”按钮时,EditText就会失去焦点。 (我对“焦点”一词表示怀疑,但我的意思是键盘消失了......)
我发现它有点不方便,因为用户必须再次点击EditText才能在每次发送后获得键盘。我在代码中尝试了editText1.requestFocus()
,如下所示:
editText1.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
// If the event is a key-down event on the "send" button
if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) {
// Perform action on key press
adapter.add(new OneComment(false, editText1.getText().toString()));
editText1.setText("");
editText1.requestFocus();
return true;
}
return false;
}
});
但这不起作用......请建议一个解决方法..谢谢:)
答案 0 :(得分:2)
您可以尝试这样做
editText1.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if(actionId == EditorInfo.IME_ACTION_SEND){
editText1.setText("");
editText1.requestFocus();
InputMethodManager imm = (InputMethodManager)getSystemService(Service.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText1, 0);
}
return true;
}
});