2013-06-30 53 views
3

我正在开发一个消息应用程序,其中我有一个EditText供用户键入他的消息。我用setImeOptions()方法在键盘上提供了一个'发送'按钮。但是,只要用户点击“发送”按钮,EditText就会失去焦点。 (我对'焦点'这个词有怀疑,但我的意思是键盘消失..)Android: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; 
      } 
     }); 

但是,这并不工作...请提出一个workaround..thanks :)

回答

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

键盘仍然消失:( – tigerden

+0

尝试更新的代码:s – stinepike

+0

非常感谢您的快速帮助:)但是Eclipse显示错误getSystemService方法...即使导入Service和InputMethodManager..any想法? – tigerden