是否可以关闭一个应用程序的所有声音,并保存选择直到下一次启动应用程序?
所以我在StartActivity上有一个ToggleButton,按下这个按钮,应该停用应用程序的所有声音,但其他应用程序的声音应该仍然有效。
我尝试使用Preferences,使用SharedPreferences类,xml文件等等,就像在我的书中一样。但是通过我意识到的介绍,首选项只是一种永久保存数据的方法。 所以我必须在每个按钮上加上一个声音if-clause来检查声音开/关的保存偏好是真是假,然后激活/停用声音?
我认为这可能更容易吗?
答案 0 :(得分:3)
实际上,如果您想在应用程序中禁用声音 - 您可以不播放它。您可以在SharedPreferences
中存储要播放的每个声音的标记,并在每次要播放声音时进行检查。这真的很容易!
答案 1 :(得分:1)
您可以编写自己的MyButton类来扩展Button并覆盖onClick。
答案 2 :(得分:0)
声明一个字符串
String strSound;
在共享偏好设置中输入此行
strSound = prefs.getString(" sound"," on");
在onActivityResult
strSound = prefs.getString("sound", "on");
将此行放入您的媒体播放器中,该播放器用于为您的应用提供声音
private void playSound()
{
mp = MediaPlayer.create(MyActivity.this, R.raw."your_soundfile_name");
mp.setOnCompletionListener(new OnCompletionListener()
{
@Override
public void onCompletion(MediaPlayer mp)
{
mp.release();
}
});
if(strSound.equals("on"))
mp.start();
现在将这一行放在您的切换按钮活动
上your_togglebutton_id.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
{
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
prefs = getSharedPreferences(prefName, MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
if (isChecked)
{
editor.putString("sound", "on");
editor.commit();
}
else
{
editor.putString("sound", "off");
editor.commit();
}
}
}