2016-04-22 17 views
0

私は初心者です。私は多くのステーションを持つラジオアプリケーションを作成し始めましたが、私には1つの問題があります。Java(Androidスタジオ)のインテント間の難易度

ラジオの「再生」を押すと、再生が開始され、先行のアクティビティ(ステーションリスト)に戻り、同じラジオに戻って再生して「一時停止」すると、遊んでいない"。 (ラジオが演奏されていない間に「一時停止」を押すと、「演奏しない」という発言をしたが、ラジオはまだ「演奏中」であるというトーストをした。ここで

は2つのボタンのコードは(再生や一時停止)である:

btnPlayMFM.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 

     if (isOnline() == true) { 
      if (isPlaying() == false) { 

        Toast t = Toast.makeText(MosaiqueFM.this, "Loading \nPlease Wait", 10000); 
        t.show(); 

        try { 
         mediaPlayer.reset(); 
         mediaPlayer.setDataSource(stream_url); 
         mediaPlayer.prepareAsync(); 

         mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
          @Override 
          public void onPrepared(MediaPlayer mp) { 
           mp.start(); 
          } 
         }); 

        } catch (IOException e) { 
         e.printStackTrace(); 
        } 


       } else if (isPlaying() == true) { 
        Toast t2 = Toast.makeText(MosaiqueFM.this, "Playing", 2000); 
        t2.show(); 
       } 
      } 
      if (isOnline() == false){ 
       Toast t = Toast.makeText(MosaiqueFM.this, "Internet Connection Required", 3000); 
       t.show(); 
      } 
     } 

    }); 

    btnPauseMFM.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (isPlaying() == true) { 
       mediaPlayer.stop(); 
      } else if (isPlaying() == false){ 
       Toast t = Toast.makeText(MosaiqueFM.this, "Not Playing", 2000); 
       t.show(); 
      } 
     } 
    }); 

public boolean isPlaying() { 
    return(mediaPlayer != null && mediaPlayer.isPlaying()); 
} 

public boolean isOnline() { 
    cm = (ConnectivityManager) getSystemService(this.CONNECTIVITY_SERVICE); 
    return cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnectedOrConnecting(); 
} 
+0

こんにちは、あなたの質問を編集して読みやすくしました。エラーが発生した可能性があります。 'btnPlayMFM.setOnClickListener'を実行する前に、' btnPlayMFM.setOnClickListener( '')を終了しないでください。再生ボタンのリスナーを設定した部分の中の一時停止ボタンのリスナを設定してください。 –

+0

[this良い質問をする方法についてのガイド(https://stackoverflow.com/help/how-to-ask)を参照してください。これは、質問をするために必要な詳細をいくつか上書きするためです。気づいたのは、あなたのタイトルはあなたの質問を説明しているのではなく、あなたの質問を投稿した理由を説明しています。 –

答えて

1

あなたは2つのアクティビティがある場合 - 遊びのために1つの以上を示すステーションリストと別のものをするときに/どうやら、特定のラジオ局を一時停止します2回目の活動を残すと、あなたの活動は破壊され、mediaPlayerはnullになります。戻ってくると、isPlaying()は偽になります。 そして、あなたはこのToastなっている理由です -

Toast t = Toast.makeText(MosaiqueFM.this, "Not Playing", 2000); 

提案 - アプリケーションのこれらの種類については、ユーザーがアプリケーションを離れるときにラジオを停止する必要はありませんが。だから私は、あなたがプレイの目的のためにサービスを使うことを勧めます。