单击按钮时,我正在使用以下代码隐藏键盘:
private OnClickListener saveButtonListener = new OnClickListener() {
@Override
public void onClick(View v) {
final View activityRootView = findViewById(R.id.myProfileDetails);
activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int heightDiff = activityRootView.getRootView().getHeight() - activityRootView.getHeight();
if (heightDiff > 100) { // if more than 100 pixels, its probably a keyboard...
imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
}
}
});
//other code that does something
}
}
该按钮还可以执行其他一些操作,但它们都与键盘无关,并且在按下按钮时,活动不会改变。
我的活动中也有两个EditText
领域。当我使用该应用程序并点击任一字段时,它们会获得焦点并出现键盘。当我按下按钮时,键盘消失,其他代码完全按原样执行。在这种情况下,一切都很完美。
EditText
当第二次点击任一字段时,就会出现问题。现在,EditText
获得焦点,但键盘几乎立即出现和消失,而我没有做任何事情。我猜我的代码在我第一次单击按钮后使键盘永久消失。为什么会发生这种情况,我该如何纠正?