Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android事件觸發EditText焦點和自動彈出鍵盤

Android事件觸發EditText焦點和自動彈出鍵盤

編輯:關於Android編程

 

關於Android中的EditText焦點與鍵盤的問題:

通常在一個布局中,給EditText設置焦點方式如下 ,在Activity啟動後會自動將焦點定位到第一個EditText並且鍵盤自動彈起。

方式一,在layout中:

[html] view plain copy

print?

android:focusable="true"

android:focusableInTouchMode="true"

android:focusable="true"

android:focusableInTouchMode="true"

方式二,在代碼中:

[java] view plain copy

print?

edit.setFocusable(true);

edit.setFocusable(true);

如果不需要啟動自動彈出鍵盤,則在manifest文件的Activity標簽設置屬性android:windowSoftInputMode="stateAlwaysHidden" (或者stateHidden|adjustResize)

根據需要設置來限制不自動彈出鍵盤。

但是如果要在某個事件觸發後要彈出鍵盤(如從語音切換到文字操作時),需要自動彈出鍵盤。

具體方法如下:

[java] view plain copy

print?

edit.requestFocus();

InputMethodManagerimm=(InputMethodManager)edit.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);

imm.toggleSoftInput(0,InputMethodManager.SHOW_FORCED);

edit.requestFocus();

InputMethodManager imm = (InputMethodManager) edit.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);

imm.toggleSoftInput(0, InputMethodManager.SHOW_FORCED);

以上代碼主要分兩部分:第一步通過requestFocus()方法取得焦點(setFocusable(true)不知道什麼原因無效);

第二步是強制性的彈出鍵盤,由於焦點在editText上,所以輸入就正常了。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved