2012-10-19 74 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

相关问题