1
如何将关键事件从可调焦的PopupWindow调度到基础活动。如果我将 窗口设置为可调焦,它会消耗所有事件。我希望能够截获一个密钥,并处理事件。PopupWindow,调度关键事件
这是我的困境: 我的PopupWindow包含一个EditText,为了显示窗口的键盘ontop,我不得不在窗口上设置焦点。由于焦点问题,这个问题是我无法拦截按键事件,在这种情况下是菜单按钮来关闭窗口。
如何将关键事件从可调焦的PopupWindow调度到基础活动。如果我将 窗口设置为可调焦,它会消耗所有事件。我希望能够截获一个密钥,并处理事件。PopupWindow,调度关键事件
这是我的困境: 我的PopupWindow包含一个EditText,为了显示窗口的键盘ontop,我不得不在窗口上设置焦点。由于焦点问题,这个问题是我无法拦截按键事件,在这种情况下是菜单按钮来关闭窗口。
您只能处理事件以聚焦视图。
您可以尝试使用我的CustomPopUp。
这里是如何工作的:如果你点击EditText,输入一些内容,然后打开CustomPopUp并继续输入你将输入EditText。所以即使您打开CustomPopUp之前的视图也是重点关注的。
public class CustomPopUp extends PopupWindow
{
private final View.OnTouchListener customPopUpTouchListenr = new View.OnTouchListener()
{
@Override
public boolean onTouch(final View v, final MotionEvent event)
{
return false;
}
};
public CustomPopUp(final View theView)
{
super(theView);
initView();
setTouchInterceptor(customPopUpTouchListenr);
}
private void initView()
{
setWidth(LayoutParams.WRAP_CONTENT);
setHeight(LayoutParams.WRAP_CONTENT);
setTouchable(true);
setOutsideTouchable(true);
setBackgroundDrawable(new ColorDrawable());
}
}
谢谢,在这种情况下,EditText视图位于窗口本身内部。所以我必须将焦点集中在显示键盘。 – user634545 2012-03-01 12:49:12
请标记为已解决 – 2012-03-02 12:57:55
这并不能解决我的问题,正如我所说的,弹出窗口需要重点关注弹出窗口内的edittext才能工作。我通过从Android源获取PopupWindow并修改调度密钥方法来解决问题。 – user634545 2012-03-03 10:02:51