Java Android:从非活动类更新TextView
我正在编写一个Android应用程序,我需要显示一些非活动类的结果。 基本上,我的应用程序会获取当前位置、活动和其他信息,并在这些信息上运行一些功能,例如检查用户以前是否去过那个地方。 无论如何,一个意图会触发这些函数,在函数的末尾,我想用这些函数的结果更新一个TextView 但除了主要活动外,它似乎在任何地方都不起作用。我尝试将TextView设置为静态,但这似乎不起作用,而且在中也不可能将结果返回到MainActivity,因为它不是直接从MainActivity调用的 有人对如何解决这个问题有想法吗?Java Android:从非活动类更新TextView,java,android,android-layout,textview,Java,Android,Android Layout,Textview,我正在编写一个Android应用程序,我需要显示一些非活动类的结果。 基本上,我的应用程序会获取当前位置、活动和其他信息,并在这些信息上运行一些功能,例如检查用户以前是否去过那个地方。 无论如何,一个意图会触发这些函数,在函数的末尾,我想用这些函数的结果更新一个TextView 但除了主要活动外,它似乎在任何地方都不起作用。我尝试将TextView设置为静态,但这似乎不起作用,而且在中也不可能将结果返回到MainActivity,因为它不是直接从MainActivity调用的 有人对如何解决这个
这是我的第一个android项目,所以还有很多事情我不知道。谢谢大家! 我不知道您的代码到底是什么样子的,但是您是否有一个保存所有数据的模型类(例如,某种单例)?如果是这样,您可以将更新的文本保存在那里,然后在回调方法中更新TextView
如果这不符合您正在做的,我会考虑重构您的代码,以便将您想要的文本发送回MainActivity。您提到该方法不是直接调用的,但是您的计算是否可以将文本传递给中间类,中间类将文本传递给MainActivity?您不应该更新ui drom后台线程。 如果要从后台线程更新ui,请使用处理程序、AsyncTask或其他一些线程概念
如果您想更新服务或广播接收器的用户界面,例如,您现在在broadcasrReceiver的onReceive内收到一条消息,要更新用户界面,请使用sendBroadcast,并在活动注册表内设置一个动态广播接收器,然后更新您的问题是否可以使用?理想情况下,您不应该在中定义的视图类(例如活动)之外更新TextView。您所说的非活动类是什么意思?感谢大家迄今为止的回答!我会试着解释更多!在我的MainActivity类中,我实例化了一些类,这些类每分钟(通过Intent)获得一次某种信号。例如,获取当前位置的GPS类。onHandleIntent()然后从另一个调用调用一个函数,该函数根据这些值进行一些计算(例如,检查此人以前是否在该位置),该函数的结果就是我想要显示的结果。我希望这能让事情更清楚一点。我会发布代码,但我真的不知道该发布什么。。