安卓:在“发送”后EditText失去焦点

3
我正在开发一款消息应用程序,其中我提供了一个EditText供用户输入消息。使用setImeOptions()方法可以在键盘中提供'Send'按钮。然而,每当用户点击'Send'按钮时,EditText都会失去焦点(我对'focus'这个词有些怀疑,但我的意思是键盘会消失...)。
我觉得这样有点不方便,因为用户每次发送后都必须再次点击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;
            }
        });

但这个方法不起作用...请建议一个解决方法...谢谢 :)
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;
    }
});

键盘仍然消失 :( - tigerden
非常感谢您的快速帮助... :) 但是Eclipse在使用getSystemService方法时显示错误...即使导入了Service和InputMethodManager...有什么想法吗? - tigerden
我已经阅读了这篇文章,但它与在活动开始/恢复时显示/隐藏键盘有关,我只需要在“发送”按钮按下后保持焦点。 - tigerden
1
是的,但它也写了如何以编程方式显示键盘。最后一件事,从该方法返回true。请检查最后更新。如果这不起作用,我就放弃了:( - stinepike
是的,那是我的错误。uit总是使用默认行为返回true :) .. - stinepike
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接