我有一个活动,其中文本视图获得键盘的焦点。
我将ontouchlistener设置为父视图;如果点击超出了textview的范围,我将使用;
隐藏我的textviewInputMethodManager 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;
}
由于
答案 0 :(得分:-1)
检查配置。无论键盘是否已关闭,keyboardHidden值都将保持不变。这将是有效的,除非有一个面部键盘(想想黑莓风格)。如果那些很重要,你需要一些更复杂的逻辑,包括键盘字段和hardKeyboardHidden字段。