我有一個首選活動,其中有一個PreferenceCheckBox。即使未選中,首選項複選框也會保持爲真
我的偏好活動:
package com.tjs.balr;
import android.os.Bundle;
import android.preference.PreferenceActivity;
public class SettingsActivity extends PreferenceActivity{
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
我的複選框:
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="Audio">
<CheckBoxPreference
android:id="@+id/checkSound"
android:summary="Turn sounds on or off"
android:defaultValue="true"
android:title="Sounds"
android:key="soundPref"
/>
</PreferenceCategory>
</PreferenceScreen>
在我的主要活動我嘗試使用讓我的複選框的值:
private void showUserSettings() {
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
musicPlaying = sharedPrefs.getBoolean("checkSound", true);
if(musicPlaying){
Toast.makeText(this, "music is turned on", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(this, "music is turned off ", Toast.LENGTH_SHORT).show();
}
}
了很多這裏的人在stackoverflow描述musicPlaying = sharedPrefs.getBoolean("checkSound", true);
作爲獲取複選框的值的方式,但我ñ我的情況下,它保持真實。主要是因爲我說默認值checkSound
是真的。我爲了改變PreferenceCheckBox的價值而忘記了一些東西?根據我對PreferenceActivity的理解,所有數據都會自動保存,這是正確的嗎?
哇,甚至從不看我的鑰匙或ID。我很抱歉我的sl :(:( – Tomjesch