【问题标题】:Android What is context? [duplicate]Android 什么是上下文? [复制]
【发布时间】:2017-09-01 22:28:17
【问题描述】:

所以我开始学习手势,一切正常,然后我将这个(活动上下文)更改为活动中的一个按钮(button.getContext())。我虽然它只会在按钮中捕获事件,但它会像以前一样在所有屏幕视图上捕获事件。你们能解释一下为什么因为我只知道上下文就像对象或活动的状态,谢谢你的时间

  detector = new GestureDetector(btn.getContext(), new GestureDetector.OnGestureListener(){};

【问题讨论】:

  • 非常简单,您可以说Context 是指向执行代码的进程的链接。根据这些信息,可以得出更多信息,包括内部资源的 APK 等等。

标签: android android-context


【解决方案1】:

有关应用程序环境的全局信息的接口。这是一个抽象类,其实现由Android系统提供。它允许访问特定于应用程序的资源和类,以及向上调用应用程序级操作,例如启动活动、广播和接收意图等。

Source

【讨论】:

    【解决方案2】:

    在您的场景中,GestureDetector 需要 ContextActivity。要么传递MyCurrentActivity.this 作为参考,要么传递button.getContext(),这两个上下文都属于同一个Activity

    您从button.getContext() 获得的Context 最初是在视图膨胀时设置的。

    【讨论】:

      【解决方案3】:

      上下文基本上是对应用程序资源的访问。当您获得按钮的上下文时,您实际上获得的是对按钮所在活动的上下文的引用,而不是按钮本身。 Android中有4种Context

      1. 应用程序上下文
      2. 活动/服务上下文
      3. 广播接收器
      4. 内容提供者

      每种上下文类型都有不同的职责和可用资源。所以这里的上下文使用不是限制你可以触摸的地方,而是你可以使用 UI。如果您想限制手势检测器的工作位置,您只需将检测器附加到视图即可。不过,您仍然需要 Activity 上下文来创建检测器。

      我发现这篇关于不同上下文类型的文章非常有帮助:

      https://possiblemobile.com/2013/06/context/

      【讨论】:

        猜你喜欢
        • 2011-04-25
        • 2015-09-16
        • 2011-05-11
        • 2011-07-21
        • 2011-04-24
        • 1970-01-01
        相关资源
        最近更新 更多