【发布时间】:2015-07-27 16:54:16
【问题描述】:
我正在开发一款 Android 游戏,其中的设置中有一个选项可以关闭/打开游戏声音。 我想为游戏存储这些设置,为此我使用共享首选项来存储布尔值。 但问题是应用程序关闭后布尔变量不保存。 这是我的代码
设置SharedPreference的按钮点击监听器
volume.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (check == false) {
check = true;
PrefrencesClass.setBoolPreference(mContext,
Constants.APPSPREF, Constants.FIRSTTIME, true);
volume.setBackgroundResource(R.drawable.mute);
Log.e("Check is True", "Preference is True");
} else if (check == true) {
check = false;
volume.setBackgroundResource(R.drawable.volume);
PrefrencesClass.setBoolPreference(mContext,
Constants.APPSPREF,Constants.FIRSTTIME, false);
Log.e("Check is false", "Preference is false");
}
Toast.makeText(getApplicationContext(), "Volume is Clicked",
Toast.LENGTH_SHORT).show();
}
});
我的函数来设置布尔值SharedPreference
public static final void setBoolPreference(Context base, String prefName,
String key, boolean value) {
SharedPreferences userPref = base.getSharedPreferences(prefName,
Context.MODE_PRIVATE);
SharedPreferences.Editor editor = userPref.edit();
editor.putBoolean(key, value);
editor.commit();
}
这就是我获得SharedPreference的方式
public static final boolean getBoolPreference(Context base,
String prefName, String key) {
SharedPreferences usePref = base.getSharedPreferences(prefName,
Context.MODE_PRIVATE);
boolean value = usePref.getBoolean(key, false);
return value;
}
这是我需要使用sharedpreference保存状态来播放声音的代码
mPlayer = MediaPlayer.create(MainActivity.this, R.raw.stronghold);
if (PrefrencesClass.getBoolPreference(context, Constants.APPSPREF,
Constants.FIRSTTIME) == false) {
mPlayer.start();
mPlayer.setLooping(true);
}
布尔状态不保存请帮忙
【问题讨论】:
-
你能显示
setBoolPreferences方法吗? -
抱歉,错误地发布了
sharedIntPreference的代码,刷新为正确的@PrerakSola -
您正在使用不同的密钥。静音为
Constants.FIRSTTIME,音量为Constants.APPSPREF -
再次查看 setBoolPreference Method Constant.APPSPREF 是 String 值,Actual key 是 Constants.FIRSTTIME 并且在 @PrerakSola 中都相同
标签: android boolean sharedpreferences