首页 > 代码库 > android 回车键事件编程

android 回车键事件编程

实现android按下回车键便隐藏输入键盘,有两种方法:

1.)如果布局是多个EditText,为每个EditText控件设置android:singleLine=”true”,弹出的软盘输入法中 回车键为next,直到最后一个获取焦点后显示为Done,点击Done后,软盘输入键盘便隐藏。或者将EditText的imeOptions属性设置 android:imeOptions=”actionDone”,则不管是不是最后一个EditText,点击回车键即隐藏输入法。

2.)监听Enter的事件,编写Enter的事件响应。设置文本框的OnKeyListener,当keyCode ==KeyEvent.KEYCODE_ENTER的时候,表明Enter键被按下,就可以编写自己事件响应功能了。

点击下载源码

具体代码:

view plaincopy to clipboardprint?
  1. package listenter.main;   
  2.   
  3. import android.app.Activity;   
  4. import android.content.Context;   
  5. import android.os.Bundle;   
  6. import android.view.KeyEvent;   
  7. import android.view.View;   
  8. import android.view.View.OnKeyListener;   
  9. import android.view.inputmethod.InputMethodManager;   
  10. import android.widget.EditText;   
  11.   
  12. public class EnterListenter extends Activity {   
  13. /** Called when the activity is first created. */  
  14. @Override  
  15. public void onCreate(Bundle savedInstanceState) {   
  16. super.onCreate(savedInstanceState);   
  17. setContentView(R.layout.main);   
  18.   
  19. EditText password=(EditText)findViewById(R.id.password);   
  20.   
  21. password.setOnKeyListener(onKey);   
  22.   
  23. }   
  24.   
  25. OnKeyListener onKey=new OnKeyListener() {   
  26.   
  27. @Override  
  28.   
  29. public boolean onKey(View v, int keyCode, KeyEvent event) {   
  30.   
  31. // TODO Auto-generated method stub   
  32.   
  33. if(keyCode == KeyEvent.KEYCODE_ENTER){   
  34.   
  35. InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);   
  36.   
  37. if(imm.isActive()){   
  38.   
  39. imm.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0 );   
  40.   
  41. }   
  42.   
  43. return true;   
  44.   
  45. }   
  46.   
  47. return false;   
  48.   
  49. }   
  50.   
  51. };   
  52. }  
[java] view plaincopyprint?
  1. package listenter.main;  
  2.   
  3. import android.app.Activity;  
  4. import android.content.Context;  
  5. import android.os.Bundle;  
  6. import android.view.KeyEvent;  
  7. import android.view.View;  
  8. import android.view.View.OnKeyListener;  
  9. import android.view.inputmethod.InputMethodManager;  
  10. import android.widget.EditText;  
  11.   
  12. public class EnterListenter extends Activity {  
  13. /** Called when the activity is first created. */  
  14. @Override  
  15. public void onCreate(Bundle savedInstanceState) {  
  16. super.onCreate(savedInstanceState);  
  17. setContentView(R.layout.main);  
  18.   
  19. EditText password=(EditText)findViewById(R.id.password);  
  20.   
  21. password.setOnKeyListener(onKey);  
  22.   
  23. }  
  24.   
  25. OnKeyListener onKey=new OnKeyListener() {  
  26.   
  27. @Override  
  28.   
  29. public boolean onKey(View v, int keyCode, KeyEvent event) {  
  30.   
  31. // TODO Auto-generated method stub  
  32.   
  33. if(keyCode == KeyEvent.KEYCODE_ENTER){  
  34.   
  35. InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);  
  36.   
  37. if(imm.isActive()){  
  38.   
  39. imm.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0 );  
  40.   
  41. }  
  42.   
  43. return true;  
  44.   
  45. }  
  46.   
  47. return false;  
  48.   
  49. }  
  50.   
  51. };  
  52. }  

图-1 点击回车键隐藏键盘

PS:

把EditText的Ime Options属性设置成不同的值,Enter键上可以显示不同的文字或图案
actionNone : 回车键,按下后光标到下一行
actionGo : Go,
actionSearch : 一个放大镜
actionSend : Send
actionNext : Next
actionDone : Done,隐藏软键盘,即使不是最后一个文本输入框