我有一个弹出窗口,里面有一个EditText
输入。弹出窗口的创建如下所示:
布尔可聚焦=true; popupWindow=new PopupWindow(popupView,宽度,高度,可聚焦);
这一切都很有效,EditText
可以通过输入。当用户点击android手机上的后退按钮时,问题就出现了。后退按钮关闭弹出窗口。这不应该发生,因为用户的意图是在与弹出窗口进行交互之前无法继续。
现在,我们当然可以将弹出视图的焦点设置为false
,以禁止通过后退按钮解除:
Boolean focusable=false;popupWindow=新的popupWindow(popupView、宽度、高度、可聚焦)
这里的问题是
EditText
没有接收到它需要能够键入的焦点。因此,用户无法与EditText
交互。
您知道如何通过弹出视图或编辑文本解决此问题吗?
编辑:
所以我试图用记录器覆盖主活动上的
onBackPress
方法,以检查活动中是否调用了监听器:
@Override
public void onBackPressed() {
super.onBackPressed();
Logger.d("isthistriggered");
finish();
}
事实证明,当弹出窗口处于活动状态时,不会调用
onBackPressed
。一旦你第二次按下后退按钮,它就会触发监听器。
当对话框显示时,您必须处理后退按钮的按下
只需在您的活动中重写onBackP()
并全局声明弹出窗口对象
@Override
public void onBackPressed() {
if (popupWindow != null && popupWindow.isShowing()) {
popupWindow.dismiss();
} else {
super.onBackPressed();
}
}
匿名用户
如果显示PopupWindow,则onBackPmed不会立即传递到活动
,因此覆盖它并执行操作的任何努力都将是徒劳的。实现它的一种方法是创建CustomView并覆盖调度KeyEventPreIme()
。您可以遵循描述这种方法的SO。
将静态方法removePopupWindow(视图v)
放在MainActivity中,并在onBackPressed()中调用它。移除弹出窗口(弹出窗口)
我正在编写一个小型PyQt4应用程序,它只是一个“是/否”对话框,必须执行一个外部命令(例如“eject/dev/sr0”)并退出。 应用程序运行时,它在按下“是”按钮后执行命令,但我无法在执行命令时使对话框本身退出。 这是我的密码。当我单击“是”时,它会正确地调用'eject/dev/sr0'命令,但在此之后对话框仍然可见。我必须单击“否”关闭应用程序,我希望它在执行命令时自动关闭。我应该添加/
我试图从扩展服务的类中打开一个活动。当应用程序不在前台/未被使用时,我正在执行此任务。我可以在日志中看到,我的服务类故意触发了启动活动。标志\活动\新任务标志。但活动并未开始。但是,当应用程序处于前台/正在使用时,服务触发相同的活动时,活动就会打开。 经过几次搜索,我发现我需要在应用程序设置的“其他权限”部分中手动授予“在后台运行android时显示弹出窗口”的权限。 “在其他应用程序上显示”权限
我正在开发一个应用程序使用Flutter。但是我被一种情况所困扰,Android设备有默认的后退按钮,而iPhone没有。所以当我在iOS设备上打开应用程序时,需要显示后退按钮。此外,如果有任何其他内置功能可用,请指导我。
问题内容: 我需要使用Java或基于Javascript的自动化解决方案来操纵IE浏览器的“弹出窗口和下载对话框”。 我尝试了selenium2,但是它不能正常工作,因此其他建议也一样。实际上selenium2没有提供警报/下载对话框的正确处理,因此我正在考虑使用其他一些javascript / java解决方案。 使用“下载对话框”:我需要将下载的文件保存到特定位置。使用“警报对话框”:我需要检
当用户单击返回按钮时,我正在尝试退出应用程序,让它在单击是按钮时显示对话框是/否按钮,让它退出应用程序,包括注册活动,假设您在主活动上。 这是我的代码,但它不工作 单击主活动上的“后退”按钮时 如何从主活动退出应用程序,包括在是按钮单击对话框上的注册活动
我是Tkinter库的新手,我想知道当打开新窗口时如何禁用按钮。例如,如果单击主窗口上的按钮,将打开一个新窗口,并且主窗口上的所有按钮将被禁用。窗口关闭后,应重新启用按钮。 下面是我的代码示例: 额外:如果有人能告诉我如何在不关闭整个“Tkinter”程序的情况下关闭“root”窗口,我将不胜感激。例如,如果一个辅助窗口打开,我希望能够关闭第一个窗口,或者至少最小化它。