標籤:android des style blog class code
實現android按下斷行符號鍵便隱藏輸入鍵盤,有兩種方法:
1.)如果布局是多個EditText,為每個EditText控制項設定android:singleLine=”true”,彈出的磁碟片IME中 斷行符號鍵為next,直到最後一個擷取焦點後顯示為Done,點擊Done後,磁碟片輸入鍵盤便隱藏。或者將EditText的imeOptions屬性設定 android:imeOptions=”actionDone”,則不管是不是最後一個EditText,點擊斷行符號鍵即隱藏IME。
2.)監聽Enter的事件,編寫Enter的事件響應。設定文字框的OnKeyListener,當keyCode ==KeyEvent.KEYCODE_ENTER的時候,表明Enter鍵被按下,就可以編寫自己事件響應功能了。
點擊下載源碼
具體代碼:
view plaincopy to clipboardprint?
- package listenter.main;
-
- import android.app.Activity;
- import android.content.Context;
- import android.os.Bundle;
- import android.view.KeyEvent;
- import android.view.View;
- import android.view.View.OnKeyListener;
- import android.view.inputmethod.InputMethodManager;
- import android.widget.EditText;
-
- public class EnterListenter extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
-
- EditText password=(EditText)findViewById(R.id.password);
-
- password.setOnKeyListener(onKey);
-
- }
-
- OnKeyListener onKey=new OnKeyListener() {
-
- @Override
-
- public boolean onKey(View v, int keyCode, KeyEvent event) {
-
- // TODO Auto-generated method stub
-
- if(keyCode == KeyEvent.KEYCODE_ENTER){
-
- InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
-
- if(imm.isActive()){
-
- imm.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0 );
-
- }
-
- return true;
-
- }
-
- return false;
-
- }
-
- };
- }
[java] view plaincopyprint?
- package listenter.main;
-
- import android.app.Activity;
- import android.content.Context;
- import android.os.Bundle;
- import android.view.KeyEvent;
- import android.view.View;
- import android.view.View.OnKeyListener;
- import android.view.inputmethod.InputMethodManager;
- import android.widget.EditText;
-
- public class EnterListenter extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
-
- EditText password=(EditText)findViewById(R.id.password);
-
- password.setOnKeyListener(onKey);
-
- }
-
- OnKeyListener onKey=new OnKeyListener() {
-
- @Override
-
- public boolean onKey(View v, int keyCode, KeyEvent event) {
-
- // TODO Auto-generated method stub
-
- if(keyCode == KeyEvent.KEYCODE_ENTER){
-
- InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
-
- if(imm.isActive()){
-
- imm.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0 );
-
- }
-
- return true;
-
- }
-
- return false;
-
- }
-
- };
- }
圖-1 點擊斷行符號鍵隱藏鍵盤
PS:
把EditText的Ime Options屬性設定成不同的值,Enter鍵上可以顯示不同的文字或圖案
actionNone : 斷行符號鍵,按下後游標到下一行
actionGo : Go,
actionSearch : 一個放大鏡
actionSend : Send
actionNext : Next
actionDone : Done,隱藏軟鍵盤,即使不是最後一個文本輸入框