1

有 10 个 EditTexts。当我输入这些 EditTexts 时,softInputKeyboard 显示“NEXT”,最后一个 EditText 显示“DONE”。在我完成所有输入之前,我无法隐藏 softInputKeyboard。但是,当我刚刚结束输入这些 EditText 之一时,我想隐藏 softInputKeyboard。那么该怎么做呢?

4

3 回答 3

1

在 OnCreate 方法中使用以下代码。

this.getWindow().setSoftInputMode(
            WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

或者,如果您需要软键盘的任何其他功能,则使用不同的选项代替 SOFT_INPUT_ALWAYS_HIDDEN

我认为这对你有用。享受:)

于 2013-05-09T12:18:51.097 回答
1

在您的活动的 oncreate() 中写入以下内容:

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

这解决了问题。

于 2013-05-09T12:20:28.447 回答
0

要关闭键盘,您应该添加以下内容:

InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);

要收听是否输入了文本,您可以添加 textWatcher。例如,我在输入一些符号后使用它来清除字段或设置下一个焦点:

textWatcher = new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence charSequence,
                        int i, int i1, int i2) {
                }

                @Override
                public void onTextChanged(CharSequence charSequence, int i,
                        int i1, int i2) {
                    if (carNrEt_final.length() == 3) {
                        carNrEt11_final.requestFocus();
                    }
                    if (carNrEt_final.length() != 0) {
                        carNrGlobalEt_final.setText("");
                    }
                    if (carNrEt11_final.length() != 0) {
                        carNrGlobalEt_final.setText("");
                    }
                }

                @Override
                public void afterTextChanged(Editable editable) {
                }
            };

            carNrEt_final.addTextChangedListener(textWatcher);

希望能帮助到你

于 2013-05-09T12:22:05.543 回答