我有一个活动,它有一个静态方法来更新textfield
。这样我就可以从另一个活动更新此视图。
但是现在我试图在这个静态方法中获取一个不可能的Context变量。我已经尝试声明一个Context变量并在onCreate ( context = getApplicationContext();)
但是我仍然无法访问此静态方法中的上下文。这通常是怎么做的?
编辑:关于我的情况的更多信息。我在一个活动(a)中开始countdowntimer
,它更新另一个活动的(b)``textfield 每秒。它通过以静态方式访问b的setTextField
来实现这一点。
答案 0 :(得分:3)
这通常是怎么做的?
通过静态方法访问TextView
不是从其他活动更新字段的最佳方法。如果要在活动开始时将值传递给活动,则可以通过意图发送数据(即intent.getExtras
)。如果要从子活动传回数据,可以使用startActivityForResult
。
答案 1 :(得分:1)
你前进的方式很奇怪。你为什么试图改变一个活动内容?您可能需要使用startActivityForResult
来进行新活动,然后从中返回结果并根据它更改视图吗?
答案 2 :(得分:0)
您可能想要检查OO上的一些文档并使用静态函数。它不被认为是一种非常好的方法。
但是,由于我们不是在讨论更好的完整sol溶剂:你可以在函数中添加带上下文的参数,并在调用函数时给它:)
答案 3 :(得分:0)
我建议使用LocalBinder模式更新其他Activity: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/LocalService.html
答案 4 :(得分:0)
答案 5 :(得分:0)
每当你忙于活动A时,在活动B上更新某些内容毫无意义,因为在那个时间点根本不会向用户显示。
在我看来,你需要在这里拥有某种全局变量,可以在活动B的onResume中获取。
查看此问题:How to declare global variables in Android?
它向您展示了如何使用Application类来维护全局应用程序状态,可以在需要时从所有活动中访问它。