내 설정 활동이 PreferenceActivity
까지 확장되며 앱에 머물러있는 한 모든 것이 예상대로 작동합니다. 하지만 Android Studio를 통해 앱을 다시 시작하면 모든 설정이 기본값으로 돌아갑니다.앱 재시작 후 PreferenceActivity의 설정이 저장되지 않음
또한 isPersistent
플래그를 설정하려고했지만 도움이되지 않습니다.
Settings.XML이있는 항목의 예 : 내 서브 클래스에서
<CheckBoxPreference
android:defaultValue="false"
android:key="askcode"
android:title="@string/askCodeSettingsString" />
onCreate
방법 :
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
boolean keepdata = pref.getBoolean("askcode", false);
:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
...
응용 프로그램을 다시 시작할 때 내가 설정을 가져 오기 위해 시도하는 방법은 그
나는 또한 어떤 사람들은에서 자신의 항목을 변경하여 작동시키고 있음을 읽었습니다.하지만 나에게 좋아 보인다 :
<activity
android:name=".SettingsActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Light" >
</activity>
편집하는 것은 내가 수동으로 저장하고있어
다른 기본 설정은 예상대로 작동됩니다
저장 :
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
editor.putString(PREFS_MANUAL, "12345");
editor.commit();
하는 가져 오기 :
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
String myString = prefs.getString(PREFS_MANUAL, "");
return myString; // now 12345
편집 내가 문제를 발견 한 것 같다 2 * -하지만 원인을하지 무엇을. 모든 기본 설정에 대한 기본값이 있습니다. 문자열은 android:defaultValue=""
으로 충분하지 않다고 생각합니다. 어떻게 방지 할 수 있습니까?
09-18 12:13:23.763 925-940/com.... W/SharedPreferencesImpl﹕ getSharedPreferences
org.xmlpull.v1.XmlPullParserException: Map value without name attribute: string
at com.android.internal.util.XmlUtils.readThisMapXml(XmlUtils.java:568)
at com.android.internal.util.XmlUtils.readThisValueXml(XmlUtils.java:821)
at com.android.internal.util.XmlUtils.readValueXml(XmlUtils.java:755)
at com.android.internal.util.XmlUtils.readMapXml(XmlUtils.java:494)
at android.app.SharedPreferencesImpl.loadFromDiskLocked(SharedPreferencesImpl.java:113)
at android.app.SharedPreferencesImpl.access$000(SharedPreferencesImpl.java:48)
at android.app.SharedPreferencesImpl$1.run(SharedPreferencesImpl.java:87)
이러한 문제가 발생하지 않았습니다. 코드가 제대로 작동해야합니다. 앱을 다시 설치하지 않으셔서 데이터를 지우시겠습니까? –
환경 설정 편집기에 값을 지정 하시겠습니까? –
@DoctororDrive 예, 확실합니다 - 제발 내 편집을 참조하십시오. – swalkner