實現android按下Enter鍵便隱藏輸入鍵盤

yangxi_001發表於2013-10-12

實現android按下Enter鍵便隱藏輸入鍵盤,有兩種方法:

1.)如果佈局是多個EditText,為每個EditText控制元件設定android:singleLine=”true”,彈出的軟盤輸入法中Enter鍵為next,直到最後一個獲取焦點後顯示為Done,點選Done後,軟盤輸入鍵盤便隱藏。或者將EditText的imeOptions屬性設定android:imeOptions=”actionDone”,則不管是不是最後一個EditText,點選Enter鍵即隱藏輸入法。

2.)監聽Enter的事件,編寫Enter的事件響應。設定文字框的OnKeyListener,當keyCode ==KeyEvent.KEYCODE_ENTER的時候,表明Enter鍵被按下,就可以編寫自己事件響應功能了。

程式碼源:
 EnterListenter.rar (40.68 KB, 下載次數: 8) 
具體程式碼:
  1. package listenter.main;

  2. import android.app.Activity;
  3. import android.content.Context;
  4. import android.os.Bundle;
  5. import android.view.KeyEvent;
  6. import android.view.View;
  7. import android.view.View.OnKeyListener;
  8. import android.view.inputmethod.InputMethodManager;
  9. import android.widget.EditText;

  10. public class EnterListenter extends Activity {
  11. /** Called when the activity is first created. */
  12. @Override
  13. public void onCreate(Bundle savedInstanceState) {
  14. super.onCreate(savedInstanceState);
  15. setContentView(R.layout.main);

  16. EditText password=(EditText)findViewById(R.id.password);

  17. password.setOnKeyListener(onKey);

  18. }

  19. OnKeyListener onKey=new OnKeyListener() {

  20. @Override

  21. public boolean onKey(View v, int keyCode, KeyEvent event) {

  22. // TODO Auto-generated method stub

  23. if(keyCode == KeyEvent.KEYCODE_ENTER){

  24. InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);

  25. if(imm.isActive()){

  26. imm.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0 );

  27. }

  28. return true;

  29. }

  30. return false;

  31. }

  32. };
  33. }
複製程式碼
 

圖-1 點選Enter鍵隱藏鍵盤

PS:

把EditText的Ime Options屬性設定成不同的值,Enter鍵上可以顯示不同的文字或圖案
actionNone : Enter鍵,按下後游標到下一行
actionGo : Go,
actionSearch : 一個放大鏡
actionSend : Send
actionNext : Next
actionDone : Done,隱藏軟鍵盤,即使不是最後一個文字輸入框


相關文章