如何在单击TextView(设置为可聚焦)后在Android上隐藏软键盘?

时间:2018-05-23 09:02:47

标签: android textview android-softkeyboard

继续给出答案 Android setError("error") not working in Textview 应用解决方案(即将textview更改为可聚焦)后,单击该文本视图时会弹出一个键盘。如何隐藏它。

P.S。我试过onFocusChangeListener和onTouchListener

我想知道在哪里调用这个隐藏键盘方法,因为我尝试了这个但它没有解决问题;

    mEndTimeView.setOnClickListener(v -> {
        InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
        if(ViewUtils.isKeyboardShown(mEndTimeView.getRootView())){
            imm.hideSoftInputFromWindow(mEndTimeView.getWindowToken(), 0);
        }
        showEndTimePicker();
    });

2 个答案:

答案 0 :(得分:1)

public static void hideKeyboard(Activity activity) {
View view = activity.findViewById(android.R.id.content);
if (view != null) {
    InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}  

点击按钮调用此方法。

答案 1 :(得分:0)

您需要此方法来隐藏软键盘。

public void closeKeyboard() {
    View view = this.getCurrentFocus();
    if (view != null) {
        InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
    }
}

调用此方法隐藏/关闭软键盘。