1. 程式人生 > >開啟新介面時,EditText焦點自動彈出軟鍵盤

開啟新介面時,EditText焦點自動彈出軟鍵盤

對於一點點空閒時間,看看文章,竟然想起以前的一個問題,趕緊修改起來。 Android新啟動Activity時,dialog或者其他窗體中包含EditText,新啟動的activity的焦點預設在EditText上,這時候安卓系統會自動彈出軟鍵盤。這會導致擠壓activity介面,影響美觀。解決: 

一、目的效果:activity開啟,軟鍵盤不自動開啟,焦點不在editText上面。當點選editText,再開啟軟鍵盤              具體方法:在onCreate()方法中將焦點放在另一個view上.  view使用requestFocus()焦點,但是如果讓button或者textView之類控制元件直接使用requestFocus()方法,則無法獲取焦點,焦點會依然在editText上。                               只能在使用View的requestFocus()方法之前呼叫下面2個方法,view才可獲取焦點:                               view.setFocusable(true);                               view.setFocusableInTouchMode(true);                               然後呼叫 requestFocus()即可獲取焦點。

二、目的效果:activity開啟,軟鍵盤不自動開啟,焦點落在editText上面。當點選editText,再開啟軟鍵盤

具體方法:在Activity中OnCreate方法裡面加下面這句程式碼 

getWindow().setSoftInputMode(  WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 或者

在AndroidManifest.xml中該activity處新增android:windowSoftInputMode屬性 eg. <activity android:name="SelectPartsActivity"                      android:screenOrientation="landscape"                      android:windowSoftInputMode="stateAlwaysHidden" />