如何在 Android 的 Activity 外部调用 getWindow()?

新手上路,请多包涵

我正在尝试组织我的代码并将重复的功能移动到一个类中。这行代码在扩展活动的类中运行良好:

 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

但是,当我尝试将其包含到外部类中时,它不起作用。

如何从另一个类调用 getWindow() 以将其应用到 Activity 中?

原文由 Kalimah 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

在创建类时传递活动的引用,并在调用相关方法和使用它时传递活动的引用。

 void someMethodThatUsesActivity(Activity myActivityReference) {
    myActivityReference.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
}

原文由 MByD 发布,翻译遵循 CC BY-SA 3.0 许可协议

您不得按照接受的答案中的建议保留参考资料。这有效,但可能会导致内存泄漏。

从您的角度使用它:

 ((Activity) getContext()).getWindow()...

您在视图中有一个对您的活动的托管引用,您可以使用 getContext() 检索它。将其转换为 Activity 并使用活动中的任何方法,例如 getWindow()。

原文由 Oliver Hausler 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题