關於如何以編程方式顯示/隱藏軟鍵盤有很多問題。防止軟鍵盤被解僱
但是,正如我們都知道的android後退按鈕將導致鍵盤被解僱。 有沒有辦法阻止用戶按下後退按鈕來解除鍵盤鎖定?
我試圖捕獲後退按鈕,但是當按下後退鍵並且軟鍵盤可見時,在我的活動中顯示onKeyDown時不會調用鍵盤。
任何建議將不勝感激。
關於如何以編程方式顯示/隱藏軟鍵盤有很多問題。防止軟鍵盤被解僱
但是,正如我們都知道的android後退按鈕將導致鍵盤被解僱。 有沒有辦法阻止用戶按下後退按鈕來解除鍵盤鎖定?
我試圖捕獲後退按鈕,但是當按下後退鍵並且軟鍵盤可見時,在我的活動中顯示onKeyDown時不會調用鍵盤。
任何建議將不勝感激。
我做到了通過使用以下兩種方法:
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK)
{
((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput
(InputMethodManager.SHOW_FORCED,InputMethodManager.HIDE_IMPLICIT_ONLY);
}
return super.onKeyUp(keyCode, event);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK)
{
((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput
(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
}
return super.onKeyDown(keyCode, event);
}
沒有工作,鍵盤繼續隱藏在後退按鈕上 – htafoya 2016-11-02 06:19:50
我找到了解決辦法:
public class KeyBoardHolder extends EditText {
public KeyBoardHolder(Context context) {
super(context);
}
public KeyBoardHolder(Context context, AttributeSet attrs) {
super(context, attrs);
}
public KeyBoardHolder(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public KeyBoardHolder(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true;
}
return false;
}
}
這可以防止鍵盤由後退按鈕被關閉。
這似乎是適度的反用戶。你爲什麼想這樣做? – Qberticus 2010-07-29 21:05:24