Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在…中播放一次音乐。。。?_Java_Android_Media Player_Listitem - Fatal编程技术网

Java 如何在…中播放一次音乐。。。?

Java 如何在…中播放一次音乐。。。?,java,android,media-player,listitem,Java,Android,Media Player,Listitem,我在共享首选项中有一个复选框,希望: 当复选框为true时,此歌曲将在活动1上播放。 打开列表项时,只需开始活动1。 在activity1中,我有一个类可以检查sharepreferences并播放歌曲,以便: 打开每个列表项时播放歌曲,打开每个列表项时播放多首歌曲。 如何在此活动中仅播放一首歌曲 这是对每个列表项的调用: protected void All() { boolean music = sharedpreferences.getBoolean("musictype", fa

我在共享首选项中有一个复选框,希望: 当复选框为true时,此歌曲将在
活动1
上播放。 打开列表项时,只需开始
活动1
。 在
activity1
中,我有一个类可以检查sharepreferences并播放歌曲,以便:

打开每个列表项时播放歌曲,打开每个列表项时播放多首歌曲。 如何在此活动中仅播放一首歌曲

这是对每个列表项的调用:

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

基本上是这样的。保留一个布尔标志,表明您是否已经玩过一次,并在玩之前检查该标志以及首选项值。播放完毕后,设置标志,使其不再播放。

您何时调用
All()
?如果你每次点击一个项目都会调用它,那么是的,它每次都会播放。是的,当点击每个项目时。我想阻止下一个开始。它可能与信号灯、监视器或。。。?
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;
        }
    }
}