以静态方式访问活动

时间:2011-04-15 13:58:23

标签: android android-context

我有一个活动,它有一个静态方法来更新textfield。这样我就可以从另一个活动更新此视图。

但是现在我试图在这个静态方法中获取一个不可能的Context变量。我已经尝试声明一个Context变量并在onCreate ( context = getApplicationContext();)

中初始化它

但是我仍然无法访问此静态方法中的上下文。这通常是怎么做的?

编辑:关于我的情况的更多信息。我在一个活动(a)中开始countdowntimer,它更新另一个活动的(b)``textfield 每秒。它通过以静态方式访问b的setTextField来实现这一点。

6 个答案:

答案 0 :(得分:3)

  

这通常是怎么做的?

通过静态方法访问TextView不是从其他活动更新字段的最佳方法。如果要在活动开始时将值传递给活动,则可以通过意图发送数据(即intent.getExtras)。如果要从子活动传回数据,可以使用startActivityForResult

答案 1 :(得分:1)

你前进的方式很奇怪。你为什么试图改变一个活动内容?您可能需要使用startActivityForResult来进行新活动,然后从中返回结果并根据它更改视图吗?

答案 2 :(得分:0)

您可能想要检查OO上的一些文档并使用静态函数。它不被认为是一种非常好的方法。

但是,由于我们不是在讨论更好的完整sol溶剂:你可以在函数中添加带上下文的参数,并在调用函数时给它:)

答案 3 :(得分:0)

答案 4 :(得分:0)

你能做这样的事吗?

像这样<viewobj>.getContext()

参考:How can I start an Activity from a non-Activity class?

答案 5 :(得分:0)

每当你忙于活动A时,在活动B上更新某些内容毫无意义,因为在那个时间点根本不会向用户显示。

在我看来,你需要在这里拥有某种全局变量,可以在活动B的onResume中获取。

查看此问题:How to declare global variables in Android?

它向您展示了如何使用Application类来维护全局应用程序状态,可以在需要时从所有活动中访问它。