我有一个文本视图获得键盘焦点的活动。
我为父视图设置了一个 ontouchlistener;如果点击超出了文本视图的范围,我将使用隐藏我的文本视图;
InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(textView.getWindowToken(), 0);
我唯一的问题是,如果没有显示键盘并且单击了父级,它会不断触发这两行,这最终会导致无用的事务(我希望尽可能多地保存处理..)
我一直在尝试使用一些 textview 方法,如 hasfocus 或 isfocused 等,但我似乎找不到一个只触发文本视图的方法来显示键盘...
有谁知道这是否可能?
下面的 if 语句是我想放置方法的地方..
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;
}
谢谢