有 10 个 EditTexts。当我输入这些 EditTexts 时,softInputKeyboard 显示“NEXT”,最后一个 EditText 显示“DONE”。在我完成所有输入之前,我无法隐藏 softInputKeyboard。但是,当我刚刚结束输入这些 EditText 之一时,我想隐藏 softInputKeyboard。那么该怎么做呢?
问问题
52 次
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 回答