3

我正在开发一个消息传递应用程序,其中我有一个 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;
            }
        });

但这不起作用...请提出解决方法..谢谢:)

4

1 回答 1

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;
    }
});
于 2013-06-30T15:13:16.783 回答