1

アクティビティにボタンがあり、ファイルの解凍が終了したときにボタンのテキストを変更したいのですが、次のようにして、アクティビティ内にブロードキャストを登録します。私の問題は、メソッドでアクティビティ インスタンスを取得するonReceive()方法です。

BroadcastReceiver receiveDecompressionNotification = new BroadcastReceiver(){

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

    }

};
4

1 に答える 1

0

これまでに解決策を見つけられなかった場合は、ほぼ同じことなので、これが役立つかもしれません。私の場合、ボタンのテキストを変更したかったのですが、ボタンserviceがサウンドの再生を停止しました。したがって、再生後に以下が実行されます。

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

あなたと同じように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);

私は初心者なので、このアプローチは最善ではないかもしれません。改善点や提案をいただければ幸いです。

于 2013-06-10T23:13:40.737 に答える