1

我是 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。请帮我。

4

5 回答 5

2

我这样做了onCreate(),它有帮助:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
于 2012-05-11T08:34:08.977 回答
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);

        }
    });
于 2012-05-11T08:39:56.167 回答
0

这是我的代码,用于确保键盘永远不会出现在 EditText 框中。您也许可以根据您的情况对其进行调整。

protected void hideKeyboard(EditText et){
    et.setKeyListener(null);
}
于 2012-05-11T08:49:47.773 回答
0

您的问题与以下相同,请参阅它可能对您有所帮助。

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

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

于 2012-05-11T09:51:17.770 回答
0

这将帮助您:

mInputMethodManager.hideSoftInputFromWindow(zipCodeEdt.getWindowToken(), 0);
于 2012-11-22T10:24:32.463 回答