在開發(fā)過程中,我們經(jīng)常會遇到Activity中包含EditText控件時(shí)會自動彈出虛擬鍵盤的情況,這是由于EditText自動獲得焦點(diǎn)的緣故,只要讓EditText失去焦點(diǎn)就行了,解決辦法如下:
1、在Manifest.xml文件中相應(yīng)的Activity下添加如下代碼:
android:windowSoftInputMode="stateHidden"2、讓EditText失去焦點(diǎn),用EditText的clearFocus:
EditText edt = (EditText)findViewById(R.id.edt);edt.clearFocus();3、強(qiáng)制隱藏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);但有時(shí)我們確實(shí)是想讓EditText自動獲得焦點(diǎn)并彈出軟鍵盤,在設(shè)置了EditText自動獲得焦點(diǎn)后,軟件盤不會彈出。注意:此時(shí)是由于剛跳到一個新的界面,界面未加載完全而無法彈出軟鍵盤。此時(shí)應(yīng)該適當(dāng)?shù)难舆t彈出軟鍵盤,如500毫秒(保證界面的數(shù)據(jù)加載完成,如果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"新聞熱點(diǎn)
疑難解答