如何强制键盘显示/隐藏?

时间:2011-11-14 15:25:25

标签: android keyboard

我试图在我给LinearLayout充气并调用setContentView之后显示键盘:

InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.showSoftInput(etContent, InputMethodManager.SHOW_FORCED);
getContent.requestFocus();

它不起作用。我也试过这个:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);

但它也没有用。如何强制键盘显示/隐藏?我做错了什么?

2 个答案:

答案 0 :(得分:33)

这应该有效

public class KeyBoard {

    public static void toggle(Activity activity){
        InputMethodManager imm = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
        if (imm.isActive()){
            imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0); // hide
        } else {
            imm.toggleSoftInput(0, InputMethodManager.HIDE_IMPLICIT_ONLY); // show
        }
    }//end method
}//end class

答案 1 :(得分:1)

this link清楚隐藏软键盘。 要显示它你可以使用hack - 在你的布局中的任何地方创建一个EditText,layout_width和layout_height = 0dip,并在onCreate中

yourEditText.requestFocus();