我想要的共享偏好设置中有一个复选框:
如果复选框为true,则此歌曲将在activity1
上播放。
打开列表项时,只需启动activity1
。
在activity1
我有一个班级来检查共享偏好并播放歌曲,所以:
当打开每个列表项时,它播放歌曲,并在打开每个列表项时播放许多歌曲。 如何在这项活动中只播放一首歌。
它呼吁每个列表项:
protected void All()
{
boolean music = sharedpreferences.getBoolean("musictype", false);
if (music) { mp1.start(); } else { mp1.stop();}
}
答案 0 :(得分: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;
}
}
}
基本上是这样的。保留一个布尔标志,表示您是否已经播放过一次,并在播放之前检查该优先级值。一旦你玩了它,设置标志,使其不再播放。