在Android中有一种方法,当活动的Android应用程序将它们传递到应该处理它的实际视图之前捕获并处理所有关键事件(可能还有触摸事件)吗?
我知道我们可以在Activity中使用onKeyDown或类似的方法来处理keyevent,但只有当它的子视图都没有在内部处理它时才会触发它。 这些视图通常是ListView,GridView,ScrollView等。
我想找到一种方法,在将keyEvent传递给这些视图之前调用我的keyHandler方法。
在我的keyHandler中实现将非常简单。它只会在每个事件上播放一个音调,就像按键音一样,然后转发它以按照那些视图或Android框架的方式进行处理。
想要知道它是否可能因为我不想将onKeyListener写入每个活动中的每个视图,因为我有很多活动和很多视图,并且在任何地方编写相同的代码变得很困难。如果有办法,我可以在BaseActivity中实现它,并通过它来推导我的所有活动,并继续使用默认密钥处理程序。
答案 0 :(得分:1)
我不是自己尝试,但我认为这个可以帮到你:(只需滚动一下文字中提到的方法)
Input Event: Event Handlers - Activity.dispatchTouchEvent(MotionEvent)
看起来这是在事件到达窗口之前捕获事件的机会。阅读详细的Description here。