2012-10-19 128 views
2

我在共享首選項中有一個複選框: 當複選框爲true時,此歌曲在activity1上播放。 打開列表項目剛剛開始時activity1。 並在activity1我有一個類,檢查股票的首選項,並播放歌曲,以便:如何在...中播放音樂一次?

當打開每個列表項時它播放歌曲,並打開每個列表項時播放許多歌曲。 如何在此活動中播放一首歌曲。

它呼籲每個列表項:

protected void All() 
{ 
    boolean music = sharedpreferences.getBoolean("musictype", false); 
    if (music) { mp1.start(); } else { mp1.stop();}  
}       
+0

你什麼時候調用All()??如果你每次點擊一個項目時都會打電話給他,那麼是的,每次都會播放。 – kcoppock

+0

是的,點擊每個項目。我想阻止下一個開始。它可能與信號燈或顯示器或...? – hossein

回答

0
public class Activity1 extends Activity { 
    boolean hasPlayed; 
    boolean shouldPlayMusic; 

    public void onCreate(Bundle savedInstanceState) { 
     hasPlayed = false; 
     SharedPreferences prefs = PreferenceManager.getDefaultSharePreferences(); 
     shouldPlayMusic = prefs.getBoolean("musictype", false); 
     //other initialization 
    } 

    protected void All() { 
     if(shouldPlayMusic && !hasPlayed) { 
      //Should check state of MediaPlayer too 
      mp1.start(); 
      hasPlayed = true; 
     } 
    } 
} 

基本上類似的東西。保持是否已經播放過的布爾標誌,並在播放之前檢查以及首選項值。一旦你玩了它,設置標誌,這樣它就不會再玩了。

+0

它不能正常工作...!播放很多聲音.... – hossein

相關問題