【问题标题】:Unwanted click events in Android after showing a dialog显示对话框后Android中不需要的点击事件
【发布时间】:2013-01-02 21:10:23
【问题描述】:

上下文

  • 我有一个简单的 ListActivity(称之为“Activity1”),其中包含一个 ListView 和许多菜单项。
  • 单击 ListView 中的项目会显示一个弹出对话框。
  • 单击 ActionBar 中的菜单项按钮(我们称之为“Button”)会启动一个 Activity(我们称之为“Activity2 ") 使用startActivityForResult()

问题:如果用户触摸一个 ListView 项目,在 ListActivity 中生成一个onListItemClick() 事件,然后真正快速地触摸 Button,则一个onOptionsItemSelected() 事件被发送到消息队列并在正当的。这会导致以下奇怪的行为:

  1. 用户触摸 ListView 项
  2. 用户触摸按钮
  3. 用户在瞬间看到onListItemClick() 生成的对话框
  4. Activity2onOptionsItemSelected() 启动,从对话框顶部开始
  5. 当用户完成 Activity2 后,他会返回对话框,而不是立即返回 Activity1强>

这是非常奇怪和令人不安的。根据我在旧的 GUI 框架中做 UI 的经验,GUI 框架从不允许第二个事件发布到队列中,所以你不必担心这些事情。

问题:是否有“首选”设计模式来阻止用户按下按钮并让它启动Activity2 当我的应用程序已经在显示一个对话框以响应 ListView 项目选择时?

禁用整个Activity1视图层次结构直到对话框结束??

【问题讨论】:

标签: android events user-interface click galaxy


【解决方案1】:

在您的服务条款中写明,每只手有 2 个拇指的用户应谨慎使用该应用。 更严重的是,也许您可​​以在使用布尔值或 Dialog.isShowing()

开始您的活动之前检查您的对话框是否打开

【讨论】:

    猜你喜欢
    • 2018-04-04
    • 1970-01-01
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多