0

在 Android 中,有没有一种方法可以让 Android 应用程序在活动时捕获并处理所有关键事件(可能还有触摸事件),然后再将它们传递到应该处理它的实际视图?

我知道我们可以在 Activity 中使用 onKeyDown 或类似方法来处理 keyevent,但只有当它的子视图都没有在内部处理它时才会触发它。这些视图通常是 ListView、GridView、ScrollView 等。

我想找到一种方法,在将 keyEvent 传递给这些视图之前调用我的 keyHandler 方法。

我的 keyHandler 中的实现将非常简单。它只会在每个事件上播放一个音调,就像按键音一样,然后将其转发以按照这些视图或 Android 框架应有的方式进行处理。

想知道它是否可能是因为我不想为每个活动中的每个视图编写 onKeyListener,因为我有很多活动和很多视图,而且在任何地方都很难编写相同的代码。如果有办法,我可以在 BaseActivity 中实现它并由此派生我的所有活动,然后继续使用默认密钥处理程序。

4

1 回答 1

1

我自己没有尝试过,但我认为这个会帮助你:(只需向下滚动一点到文中提到的方法)

输入事件:事件处理程序 - Activity.dispatchTouchEvent(MotionEvent)

看起来这是在事件到达窗口之前捕获事件的机会。在此处阅读详细说明

于 2012-04-04T09:52:31.483 回答