问题标签 [onbackpressed]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
7147 浏览

android - AutoCompleteTextView:在后按时删除软键盘而不是建议

使用 时AutoCompleteTextView,会出现下拉建议列表,并且软件键盘仍然可见。这是有道理的,因为键入随后的字符来缩小列表的效率通常要高得多。

但是如果用户想要浏览建议列表,在软件键盘仍然打开的情况下会变得非常乏味(当设备处于横向时,这将是一个更大的问题)。在没有键盘占用屏幕空间的情况下浏览列表要容易得多。不幸的是,默认行为会在您按下后退键时首先删除列表(即使在后退键的软件版本中,它会显示“按下此键将隐藏键盘”的图像)。

这是一个准系统示例,演示了我在说什么:

除了这是不直观的事实(返回键提示暗示将返回到键盘),它使导航AutoCompleteTextView建议非常令人厌烦。

使第一次后按隐藏键盘,第二次删除建议列表的侵入性最小的方式是什么(例如,onBackPressed()在每个活动中重新启动并相应地路由它肯定不是理想的)?

0 投票
1 回答
654 浏览

android-fragments - viewPager 中 onListItemClick 的子片段行为异常

我有 3 个 ListFragments 由 viewPager 处理(由 FragmentAdapter 管理) - 它们工作得很好。现在,当用户单击 ListFragment #1 中的项目时,应该会打开一个包含详细信息的新 Fragment。它以以下方式表现得很奇怪:

  1. 仅单击列表项两次打开 DetailFragment,但调试显示第一次单击确实进入了 DetailFragment,但不显示视图(视图仍显示当前的 ListFragment)。

  2. 单击第二次后,DetailFragment 确实显示了它的布局,但不显示其中的元素(如 TextView 等)。

  3. 如果在显示 DetailFragment 时用户“意外”滑动屏幕,viewPager 会将其设置为第二个 ListFragment!只有在 DetailFragment 视图上按回时,才会将 viewPager“重置”为正确的 ListFragment。当然,如果用户在一个 DetailFragment 中滑动,应该会出现 viewPager 的下一个 ListFragment,并且应该删除 DetailFragment。

感谢您在 Android 奇怪的片段和视图世界中提供的任何提示:)

编辑: 而不是getActivity().getSupportFragmentManager()我也尝试过getChildFragmentManager() ,但它总是给出错误:该方法getChildFragmentManager()对于类型 PlanetFragment 是未定义的。

0 投票
2 回答
406 浏览

android - 在主页上使用onbackpressed退出应用程序,否则转到上一页

我目前正在开发一个 Android Webview 应用程序。我正在使用以下代码退出我的应用程序。问题是通过使用此代码,我无法再返回上一页,所以这还不是我的想法。

目标:

我只想在按下主页上的后退按钮时显示以下 toast 消息。当用户在与主页不同的页面上时,按下后退按钮应该只是返回到上一页。

我怎么能做那样的事情?

0 投票
2 回答
421 浏览

android - 在主页上使用onbackpressed退出应用程序,设置主页变量

我正在开发一个 Android Webview 应用程序。我想使用onbackpressed转到上一页但也退出应用程序。

它应该如何工作:

  • 按主页上的返回按钮:我想显示一条消息“再按一次退出”。
  • 在其他网页上按返回按钮:它应该立即打开上一页。

我试图通过使用以下代码来实现这一点。唯一的问题是我不知道如何将我的主页设置为变量。现在我收到错误消息“页面无法解析为变量”。我明白为什么我会收到该消息,但我只是不知道在这种特殊情况下如何解决它。

假设我的主页 url 是“ http://example.com ”,我如何将这个主页设置为变量?

0 投票
1 回答
592 浏览

android - Android 清除所有 webView 和活动历史记录

我有使用 webView 的 MAIN Activity 和 WEB 活动。MAIN 总是执行一些处理并自动重定向到 WEB。

在 WEB 上,我输入 Preferences,进行偏好更改,当我按 Back 时,我返回 WEB。但是,在首选项中,我还可以执行帐户删除,这将执行帐户删除并启动 MAIN,该 MAIN 将再次自动启动 WEB,但这一次,因为帐户已被删除,所以在不同的 webView(注册)中。

问题:在删除帐户后注册时,如果我按返回,我会返回我的(已删除)帐户,这意味着我输入了删除帐户的首选项的 web 视图。

在首选项片段中,如果帐户删除,我用 Intent 启动 MAIN 并添加以下内容:

但这无济于事。

我也尝试过清除 webView 缓存和历史记录,但也无济于事。

我考虑过添加

到清单,但正如我所说,当我只是改变偏好时,我仍然希望能够返回到以前的活动。

有什么想法我应该怎么做?

0 投票
3 回答
712 浏览

android - onBackPressed() 会停止应用程序吗?

对不起这个问题,这不是纯粹的技术。

我们在 Play Store 上发布了我们的应用程序。我们使用 AdBuddiz 广告提供商。

由于违反了以下广告政策,Google 已暂停我们的应用:

插页式广告只能在它们附带的应用程序内显示。必须在任何插页式广告中为用户提供一个突出且易于访问的目标,以便他们可以在不受到惩罚或无意点击的情况下关闭广告。

我们在我们的应用程序中所做的是在用户处于主 Activity 时显示广告,然后按返回。我们使用的代码如下:

所以问题是:我们的应用程序是否违反了政策?显示广告时,用户按下的是应用程序内部。但是,android Activity 生命周期并不能保证在 backPress 之后应用程序没有运行,因为它应该只是调用finish().

我们正在考虑编译 Google Appel 表单,以恢复我们的应用程序。建议将不胜感激。

0 投票
1 回答
393 浏览

android - 仅对主要活动使用带有警报对话框的 onBackPressed

我正在使用我的第一个应用程序,并且在主要活动中使用此方法:

在这个活动中我去其他活动,问题是我只想在我离开主要活动(离开应用程序)时出现,但是当我离开任何活动时我会出现警报。我无法意识到解决方案是什么,有人可以帮助我吗?我只在主类中写的方法。

0 投票
1 回答
597 浏览

android - UnsupportedOperationException - 随机错误 - OnBackPressed

我在随机运行我的 Android 代码时遇到不支持的操作异常。一旦抛出此异常,我的应用程序就会崩溃。如何处理相同的问题,以及抛出此异常的基本原因是什么。

示例 1:

示例 2:

日志猫:

上面写的是一些我得到 UNSUPPORTEDOperationException 和应用程序崩溃的场景。请让我知道根本原因,如果有人知道的话。

0 投票
5 回答
1914 浏览

android - 如果不覆盖 android 中的 onBackPressed() 方法,addToBackStack() 方法将不起作用

这是我编写的 MainActivity 的代码。我正在第一个屏幕中加载片段列表。当用户点击任何列表项时,行星名称将在我在单独的类中定义的详细信息片段中显示给用户。

我正在将“Fragment Planet List”->“Fragment Planet Detail”的事务添加到后台堆栈。所以我期望的是当我从行星细节片段中按下后退按钮时,它应该在手机中加载行星列表。但事实并非如此。

但是,如果我重写 backPress 方法并以编程方式弹出返回堆栈,它就可以正常工作。

如果我想实现这种行为,是否需要以这种方式覆盖 onBackPressed() 方法?没有记录您需要在此链接中覆盖此方法。Android Back Press Fragment 文档

碎片星球细节类

碎片行星列表类:

回调接口:

谢谢。如果需要任何其他详细信息或代码,请告诉我。

0 投票
0 回答
524 浏览

android - Android:通过onBackPressed销毁活动时嵌套片段提交错误

仅当我启动此片段(第一次)并同时按下后退按钮时,应用程序才会崩溃。我没有在我的活动中覆盖 onBackPressed() 。代码:
片段类

例外是:

然后这个完全相同的错误再次出现。因此,在创建片段时按下后退按钮时应用程序崩溃,然后此异常出现两次。我认为 .commit() 是异步的。所以我认为,在计划实际提交和计划获得提交之间,活动正在被 onBackPressed 破坏。因此错误。我不确定这是不是真正的原因。所以请帮忙...