2011-09-22 65 views
0

因此,我想要做的是更改一些ui元素,这些元素在我的主要活动中进行了扩展 - 并且我希望这些更改由onReceive触发是从广播接收者扩展到不同的单独的类。处理SMS- onReceive触发另一个活动/类中的事件

我想这样做

public class SmsReceiver extends BroadcastReceiver { 
public void onReceive(context, intent){ 

MainActivity main = new MainActivity(); //this is my... main activity :) 

main.button.setBackgroundColor(Color.green); 
}//end onReceive 

}//end class 
在我的MainActivity

,我已经设置值,像这样的GUI按钮元素:

public class mainactivity extends activity... implements onclick... bla bla(){ 
Button button; 

onCreate....{ 
    button = (Button)findViewById(R.id.button); 

,所以我想知道当onReceive被激活时,我可以通过实例化该活动并在其上调用setter方法来编辑另一个活动中的小部件的状态?

回答

0

您的方法将不起作用,因为您正在创建MainActivity的新实例。这不会引用您当前的活动主要活动。您可以尝试的一个解决方案是将另一个意向发送给您的活动并在您的活动中实施onNewIntent(Intent newIntent)。通过这种方式,您可以更新您在该功能中的主要活动,尝试使用收到的新信息传递额外信息。

+0

doh。谢谢!现在你指出了,有道理...... – kleaver

相关问题