- stateUnspecified:軟鍵盤的狀態並沒有指定,系統將選擇一個合適的狀態或依賴於主題的設置
- stateUnchanged:當這個activity出現時,軟鍵盤將一直保持在上一個activity裏的狀態,無論是隱藏還是顯示
- stateHidden:用戶選擇activity時,軟鍵盤總是被隱藏
- stateAlwaysHidden:當該Activity主窗口獲取焦點時,軟鍵盤也總是被隱藏的
- stateVisible:軟鍵盤通常是可見的
- stateAlwaysVisible:用戶選擇activity時,軟鍵盤總是顯示的狀態
- adjustUnspecified:默認設置,通常由系統自行決定是隱藏還是顯示
- adjustResize:該Activity總是調整屏幕的大小以便留出軟鍵盤的空間
- adjustPan:當前窗口的內容將自動移動以便當前焦點從不被鍵盤覆蓋和用戶能總是看到輸入內容的部分
1. 啓動activity時候強制editetext彈出輸入法
<activity
android:name=".OrderFavourableActivity"
android:screenOrientation="portrait"
android:configChanges="orientation|keyboardHidden|locale"
android:windowSoftInputMode="stateVisible|adjustPan" />
/>
2. 啓動activity時候禁止editetext彈出輸入法
<activity
android:name=".OrderFavourableActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustUnspecified|stateHidden" />
2.1 啓動activity時候禁止editetext彈出輸入法
讓EditText失去焦點,使用EditText的clearFocus方法 例如:EditText edit=(EditText)findViewById(R.id.edit); edit.clearFocus();
2.2 強制隱藏Android輸入法窗口
例如:EditText edit=(EditText)findViewById(R.id.edit);
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
2.3 EditText始終不彈出軟件鍵盤
例:EditText edit=(EditText)findViewById(R.id.edit);
注意,EditText監聽鍵盤迴車會執行兩次
會發現執行了兩次,當然原因很簡單,引文onkey事件包含了down和up事件,所以只需要加入一個判斷即可
etContent.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_UP) {
}
return false;
}
});