[英]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);
試試這個......
為Android Studio 2+仿真器啟用屏幕軟鍵盤的方法取決於仿真器的API級別。 我已經測試了從API 15開始的各種方法,並記錄了以下步驟。
[A] API 15,17,19和21。
以下步驟將啟用屏幕上的軟鍵盤,但將禁用使用硬件計算機鍵盤輸入文本和與AVD交互的功能。
[B] API 22
無論您使用硬件鍵盤設置如何操作,都會顯示軟鍵盤。 如果您希望在軟鍵盤旁邊啟用硬件鍵盤支持,
[C] API 23
如果你想使用硬件和軟鍵盤,那么......
如果您不需要硬件鍵盤,請在AVD高級設置中取消選中“啟用鍵盤輸入”選項。 您無需更改虛擬設備上的任何設置。
[D] API 24和25
如果在AVD中選擇了啟用鍵盤輸入選項,那么您現在可以使用硬鍵盤輸入和軟鍵盤輸入。 如果取消選中AVD中的選項,則無論如何都會顯示軟鍵盤。
[E] API 26
與[D] API 24和25完全相同,除了在進入語言和輸入/物理鍵盤之前需要在設備設置中瀏覽其他“系統”菜單級別
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.