2013-02-25 43 views
1

我在活动中有一个按钮,现在当文件完成解压缩后,我希望按钮文本更改。我已经完成了它,如下所示,并在活动中注册广播。我的问题是如何获得onReceive()方法中的活动实例。如何在活动接收广播时更改活动中的按钮文本?

BroadcastReceiver receiveDecompressionNotification = new BroadcastReceiver(){ 

    @Override 
    public void onReceive(Context c, Intent in) { 
     // TODO Auto-generated method stub 

    } 

}; 

回答

0

如果你还没有发现,现在的解决方案,这可能会帮助你,因为它是关于几乎同样的事情: 在我来说,我想改变一个按钮的文本,当我service已停止播放声音。所以后播放以下将被执行:

mediaPlayer.setOnCompletionListener(new OnCompletionListener() { 
    @Override 
    public void onCompletion(MediaPlayer mp) 
    { 
     Intent i = new Intent("CHANGE_BUTTONSTATE"); 
     i.putExtra("state", "play"); 
     sendBroadcast(i); 
    }}); 

就像你我registred我BroadcastReceiver的活动,这是做请求中。相应onReceive()看起来是这样的:

@Override 
public void onReceive(Context context, Intent intent) 
{ 
    String state = intent.getExtras().getString("state"); 
    playButton.setText(state); 
}}; 

playButton已被宣布为活动的onCreate()

Button playButton = (Button) findViewById(R.id.playButton); 

这种做法可能不是最好的,因为我是一个初学者 - 因此,任何改进和建议表示赞赏。

相关问题