Android - 如何检查textview当前是否显示键盘输入

时间:2012-11-15 07:05:17

标签: android focus textview

我有一个活动,其中文​​本视图获得键盘的焦点。

我将ontouchlistener设置为父视图;如果点击超出了textview的范围,我将使用;

隐藏我的textview
InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(textView.getWindowToken(), 0);

我唯一的问题是,如果键盘没有显示并且单击了父级,它会继续触发这两行,最终导致无用的事务(我喜欢尽可能多地保存处理..)

我一直在尝试使用一些textview方法,如hasfocus或isfocused等,但我似乎找不到一个只能触发文本视图的键盘显示......

有谁知道这是否可能?

如果下面的陈述是我想放置方法的地方..

public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN) {
            if (textView.*SOME METHOD HERE*?) {
                Log.e(TAG, "LOSING FOCUS");
                InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(textView.getWindowToken(), 0);
            }
        }
                    return true;
    }

由于

1 个答案:

答案 0 :(得分:-1)

检查配置。无论键盘是否已关闭,keyboardHidden值都将保持不变。这将是有效的,除非有一个面部键盘(想想黑莓风格)。如果那些很重要,你需要一些更复杂的逻辑,包括键盘字段和hardKeyboardHidden字段。