在这段代码中,我在xml文件夹中用键"music"做了一个首选项复选框。
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<CheckBoxPreference
android:title="Music"
android:key="music"
android:defaultValue="true"
android:summary="Check/Uncheck this to switch on/off sound"
/>
</PreferenceScreen>
如果选中此复选框,则我的媒体播放器将开始播放。如果未选中此项,它将不会启动。但音乐并没有在取消检查后立即停止。
我想实现的是,如果我取消选中首选项中的复选框,音乐应该立即停止
下面是我在MainActivity中编写的代码,我也在onPause()方法中使用了这段代码。但什么都不管用。
希望你们能帮助我。。提前谢谢。。
MediaPlayer song;
song= MediaPlayer.create(this, R.raw.bg);
song.setLooping(true);
SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(getBaseContext());
Boolean music=prefs.getBoolean("music", true);
if(music == true)
song.start();
音乐停止和启动应在选中/取消选中复选框时进行。
yourCheckbox.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//is yourCheckbox checked?
if (((CheckBox) v).isChecked()) {
if(song.isPlaying())
song.stop();
}
}
});
如果是首选活动,您可以这样做,
music = findPreference("music");
music.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
//code to stop Music
return false;
}
});