隐藏软键盘适用于一个EditText,但不能正常工作

时间:2016-03-08 06:37:27

标签: android keyboard

我的actvity_main中有两个EditText,点击它我要禁用android的软键盘。为了实现此功能,我关注this link

两个EditText分配了以下ID

firstText and secondText

这是我应用于editText

的代码
firstText.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            v.onTouchEvent(event);
            InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
            if (imm != null) {
                imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
            }                
            return true;
        }
    });

对于secondText,只有名称更改。对于这两个EditText软键盘都不显示。这正是我想要的,但我也想要光标。在这种情况下,firstText不显示键盘但具有光标。对于secondText我无法保留光标。

我尝试在条件和setOnTouchListener中打印值。它们都可以完美地运作。

有人可以帮助我解决我的错误吗?

谢谢!提前

1 个答案:

答案 0 :(得分:1)

您可以使用以下代码显示和隐藏键盘,它适用于我。

public static void showKeyboard(Activity activity) {
        if (activity != null) {
            activity.getWindow()
                    .setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
        }
    }

    public static void hideKeyboard(Activity activity) {
        if (activity != null) {
            activity.getWindow()
                    .setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
        }
    }

希望它对您有所帮助。