所以我开始学习Gesture,一切正常,然后我将这个(活动的上下文)改为活动中的一个按钮(button.getContext())。我虽然它只会在按钮中捕获事件,但它会像以前一样捕获所有屏幕视图上的事件。你能解释一下为什么因为我只知道上下文就像对象或活动的状态,感谢你的时间
detector = new GestureDetector(btn.getContext(), new GestureDetector.OnGestureListener(){};
答案 0 :(得分:0)
有关应用程序环境的全局信息的接口。这是一个抽象类,其实现由Android系统提供。它允许访问特定于应用程序的资源和类,以及应用程序级操作的上调,例如启动活动,广播和接收意图等。
答案 1 :(得分:0)
在您的方案中,GestureDetector
需要Context
Activity
。您将MyCurrentActivity.this
作为参考或button.getContext()
传递,两个上下文都属于同一个Activity
。
Context
获得的 button.getContext()
最初是在视图夸大时设置的。
答案 2 :(得分:0)
上下文基本上是对应用程序资源的访问。当您获得按钮的上下文时,您实际上获得了对按钮所在活动的上下文的引用,而不是按钮本身。 Android中有Context
种类型:
这些Context类型中的每一个都有不同的职责和可用资源。因此,此处的上下文使用并不限制您可以触摸的位置,而是您可以使用UI。如果要限制手势检测器的工作位置,只需将检测器连接到视图即可。您仍然需要Activity上下文来创建检测器。
我发现这篇关于不同上下文类型的文章非常有用: