在Android中隐藏键盘

时间:2012-05-11 08:25:44

标签: android keyboard

我是Android应用程序开发的新手,但我在iOS中拥有编程知识。我昨天才开始学习Andriod。当我点击EditText之外的任何地方时,我想要隐藏键盘。但是我发现了一个隐藏键盘的代码,其代码如下:

"InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(txtUserName.getWindowToken(), 0);"

然后我在我的项目中尝试了以下内容,但我无法隐藏键盘。

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.login);

    txtUserName = (EditText)findViewById(R.id.txtUserName);

    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(txtUserName.getWindowToken(), 0);
}

我的疑问是我需要添加任何touchEvents或keyboardEvents。请帮帮我。

5 个答案:

答案 0 :(得分:2)

我在onCreate()做了这件事并且有所帮助:

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

答案 1 :(得分:0)

 eidttext.setOnFocusChangeListener(new View.OnFocusChangeListener() {

        @Override
        public void onFocusChange(View v, boolean arg1) {
            // TODO Auto-generated method stub
            if (!arg1) {
                hideKeyboard();

            }           

        }

        private void hideKeyboard() {
            // TODO Auto-generated method stub
            InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            inputManager.hideSoftInputFromWindow(confpassword
                    .getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);

        }
    });

答案 2 :(得分:0)

这是我的代码,用于确保键盘永远不会出现在EditText框中。您可以根据自己的情况调整它。

protected void hideKeyboard(EditText et){
    et.setKeyListener(null);
}

答案 3 :(得分:0)

您的问题与以下相同,可能会对您有所帮助。

http://3.bp.blogspot.com/-aOmfANlocYI/Tm9gJvI7s1I/AAAAAAAAAEA/yBEfcpoGX4U/s1600/3.JPG

如果真的对你有帮助,那就做对了。

答案 4 :(得分:0)

这将对您有所帮助:

mInputMethodManager.hideSoftInputFromWindow(zipCodeEdt.getWindowToken(), 0);