原文地址:/liuxiit/article/details/6903884
实现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 plain copy to clipboard print ? packagelistenter.main; importandroid.app.Activity; importandroid.content.Context; importandroid.os.Bundle; importandroid.view.KeyEvent; importandroid.view.View; importandroid.view.View.OnKeyListener; importandroid.view.inputmethod.InputMethodManager; importandroid.widget.EditText; publicclassEnterListenterextendsActivity{ /**Calledwhentheactivityisfirstcreated.*/ @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); EditTextpassword=(EditText)findViewById(R.id.password); password.setOnKeyListener(onKey); } OnKeyListeneronKey=newOnKeyListener(){ @Override publicbooleanonKey(Viewv,intkeyCode,KeyEventevent){ //TODOAuto-generatedmethodstub if(keyCode==KeyEvent.KEYCODE_ENTER){ InputMethodManagerimm=(InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); if(imm.isActive()){ imm.hideSoftInputFromWindow(v.getApplicationWindowToken(),0); } returntrue; } returnfalse; } }; }
图-1 点击回车键隐藏键盘
PS:
把EditText的Ime Options属性设置成不同的值,Enter键上可以显示不同的文字或图案
actionNone : 回车键,按下后光标到下一行
actionGo : Go,
actionSearch : 一个放大镜
actionSend : Send
actionNext : Next
actionDone : Done,隐藏软键盘,即使不是最后一个文本输入框