簡體   English   中英

Android軟鍵盤永遠不會出現在模擬器中

[英]Android softkeyboard never shows up in emulator

我是Android的新手。 我已經花了兩個小時來搜索。 無論我嘗試使用軟鍵盤,我的EditText都沒有顯示。 我簡單地創建它:

EditText editText = (EditText)findViewById(R.id.editText);

我試過了:

 editText.requestFocus();//i tried without this line too
 InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
 imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);

和:

editText.setOnFocusChangeListener(new OnFocusChangeListener() {

         @Override
         public void onFocusChange(View v, boolean hasFocus) 
         {    

                     InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
                     imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);

         }
     });

我也嘗試過:

getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE);

我嘗試將此行放入AndroidManifest.xml文件中:

 android:windowSoftInputMode="stateVisible|adjustResize"

但一切都是徒勞的。 它永遠不會顯示。 我錯過了什么?

您需要確保您的模擬器未設置為使用硬件鍵盤 這可以通過在AVD中選擇的仿真器上選擇“ Edit來完成。 然后取消選中 Hardware keyboard present設置。

您也可以嘗試使用其他模擬器,例如Genymotion 它支持全硬件加速(多核CPU以及GPU),並且運行速度比任何Android模擬器圖像快得多。 如果您使用Genymotion,則需要在Android中禁用硬件鍵盤(有關詳細信息,請參閱下文)。

要在Genymotion中禁用硬件鍵盤:
轉到Settings - > Language & input然后打開Keyboard & Input Methods下的Default項。 有一個Hardware設置,您可以打開/關閉。 當它打開時,您使用物理鍵盤,當它關閉時,只要文本字段獲得焦點,就會彈出標准軟鍵盤。

Genymotion設置的屏幕截圖: 默認項目

在此輸入圖像描述

在2.1.1版中 - 單擊您的虛擬設備設置 - 然后選擇“使用虛擬鍵盤進行輸入”復選框。 在此輸入圖像描述

在此輸入圖像描述

在AS 1.1.0中有兩個地方取消選擇硬件鍵盤。 這還不夠:

在此輸入圖像描述

必須這樣做(單擊Tools | Android | AVD Manager ;然后創建新的或編輯舊的AVD,然后單擊Show Advanced Settings ;向下滾動並清除Enable keyboard input ):

在此輸入圖像描述

顯示:

EditText editText = (EditText) findViewById(R.id.myEdit);
InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
// only will trigger it if no physical keyboard is open
mgr.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);

隱藏:

InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.hideSoftInputFromWindow(editText.getWindowToken(), 0);

試試這個......

可能是你的模擬器不支持軟鍵盤..

添加硬件屬性鍵盤支持,並為您的模擬器設置為true。

如果已經是真的那么請檢查這個答案。

為Android Studio 2+仿​​真器啟用屏幕軟鍵盤的方法取決於仿真器的API級別。 我已經測試了從API 15開始的各種方法,並記錄了以下步驟。

[A] API 15,17,19和21。

以下步驟將啟用屏幕上的軟鍵盤,但將禁用使用硬件計算機鍵盤輸入文本和與AVD交互的功能。

  1. 在Android虛擬設備管理器(AVD)中,單擊要使用的設備的編輯操作
  2. 單擊“顯示高級設置”,然后向下滾動到頁面底部的“鍵盤”部分
  3. 取消選中“啟用鍵盤輸入”選項

[B] API 22

無論您使用硬件鍵盤設置如何操作,都會顯示軟鍵盤。 如果您希望在軟鍵盤旁邊啟用硬件鍵盤支持,

  1. 在AVD中,單擊要使用的設備的編輯操作
  2. 單擊“顯示高級設置”,然后向下滾動到頁面底部的“鍵盤”部分
  3. 選中“啟用鍵盤輸入”選項

[C] API 23

如果你想使用硬件和軟鍵盤,那么......

  1. 按照[B]步驟1至3進行操作
  2. 在虛擬設備上,啟動設置,然后選擇語言和輸入/當前鍵盤
  3. 啟用硬件 - 顯示輸入法

如果您不需要硬件鍵盤,請在AVD高級設置中取消選中“啟用鍵盤輸入”選項。 您無需更改虛擬設備上的任何設置。

[D] API 24和25

  1. 按照[B]上面的步驟1到3,根據您是否要啟用hardqare鍵盤,選中或取消選中“啟用鍵盤輸入”選項。
  2. 在虛擬設備上,啟動設置,然后選擇語言和輸入/物理鍵盤
  3. 啟用“顯示虛擬鍵盤”

如果在AVD中選擇了啟用鍵盤輸入選項,那么您現在可以使用硬鍵盤輸入和軟鍵盤輸入。 如果取消選中AVD中的選項,則無論如何都會顯示軟鍵盤。

[E] API 26

與[D] API 24和25完全相同,除了在進入語言和輸入/物理鍵盤之前需要在設備設置中瀏覽其他“系統”菜單級別

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM