【发布时间】:2020-09-06 20:35:23
【问题描述】:
我的应用中有声音开/关按钮,我正在使用布尔值运行它。但问题是用户的选择并不相同。当页面刷新时,布尔值重新开始。我想如果用户设置声音,即使他关闭并再次打开应用程序,声音也应该打开。我尝试了 SharedPreferences 但我无法让它工作。我不想仅仅为此使用 SQL。你有什么建议吗?
private boolean soundCheck = false;
soundOff.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!soundCheck){
soundCheck=true;
v.setBackgroundResource(R.drawable.ic_soundOn);
}else {
soundCheck=false;
v.setBackgroundResource(R.drawable.ic_mute);
}
}
});
if(soundCheck){
playSound.start();
}else {
playSound(R.raw.silence);
}
我对 sharedPreferences 的尝试
private boolean soundCheck;
final SharedPreferences GET = PreferenceManager.getDefaultSharedPreferences(this);
final SharedPreferences.Editor SET = GET.edit();
soundOff.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!soundCheck){
SET.putBoolean("soundCheck",true);
v.setBackgroundResource(R.drawable.ic_soundOn);
}else {
SET.putBoolean("soundCheck",false);
v.setBackgroundResource(R.drawable.ic_mute);
}
}
});
【问题讨论】:
-
I tried SharedPreferences添加您尝试过的共享首选项的代码,因为您可能最终会得到此解决方案 -
SharedPreferences 有什么问题?我猜 SharedPreferences 是最好的选择。 Stackoverflow 上的文档和答案应该可以指导和帮助您。 developer.android.com/training/data-storage/shared-preferences
-
我无法理解我应该如何在开/关选项中设置布尔值的逻辑。我正在编辑我的问题。
-
我没有看到你在哪里得到你在 sharedpreference 中的值。你把它放在 onClickListener 中,但你从哪里拿回来?
标签: java android audio boolean