在開發過程中,我們經常會遇到Activity中包含EditText控件時會自動彈出虛擬鍵盤的情況,這是由于EditText自動獲得焦點的緣故,只要讓EditText失去焦點就行了,解決辦法如下:
1、在Manifest.xml文件中相應的Activity下添加如下代碼:
android:windowSoftInputMode="stateHidden"2、讓EditText失去焦點,用EditText的clearFocus:
EditText edt = (EditText)findViewById(R.id.edt);edt.clearFocus();3、強制隱藏Android輸入法窗口:
EditText edt = (EditText)findViewById(R.id.edt); InputMethodManager imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(edt.getWindowToken(), 0);4、要求EditText始終不彈出虛擬鍵盤:
EditText edt = (EditText)findViewById(R.id.edt); edt.setInputType(InputType.TYPE_NULL);但有時我們確實是想讓EditText自動獲得焦點并彈出軟鍵盤,在設置了EditText自動獲得焦點后,軟件盤不會彈出。注意:此時是由于剛跳到一個新的界面,界面未加載完全而無法彈出軟鍵盤。此時應該適當的延遲彈出軟鍵盤,如500毫秒(保證界面的數據加載完成,如果500毫秒仍未彈出,則延長至1000毫秒)。
1、可以在EditText后面加上一段代碼:
Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() { InputMethodManager inputManager = (InputMethodManager) editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.showSoftInput(editText, 0); } }, 500);2、給activity配置加入屬性:
android:windowSoftInputMode="adjustResize"新聞熱點
疑難解答