Wenn ich die Map zeige, die von get all zurückgegeben wird, kann ich nur die Werte sehen, die zuvor als hashmap gesetzt wurden, und ich kann nicht in EditTextPreference umwandeln.SharedPreferences zeigt keine Typen oder alle Einstellungen aus dem XML an
Sein sieht aus wie getAll() wird immer den Vorzug Hash aber nicht die Typen aus dem XML-
Was ich versuche, die Zusammenfassung für eine Präferenz auf den Wert gesetzt zu tun.
public static class Prefs1Fragment extends PreferenceFragment {
SharedPreferences sharedPreferences;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.initial_preferences);
}
@Override
public void onResume() {
super.onResume();
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
Map<String, ?> preferencesMap = sharedPreferences.getAll();
String appId = sharedPreferences.getString(PabuloConstants.InternalAppIdPerfName, "N/A");
// iterate through the preference entries and update their summary if they are an instance of EditTextPreference
for (Map.Entry<String, ?> preferenceEntry : preferencesMap.entrySet()) {
if(preferenceEntry instanceof EditTextPreference){
Log.d("","found instance");
}
}
}
}
XML:
<PreferenceCategory
android:title="Category Title">
<EditTextPreference
android:key="app_id_preference"
android:title="some title"
android:summary="some summary"
/>
<EditTextPreference
android:key="app_id_preference2"
android:title="some title"
android:summary="some summary"
/>
<EditTextPreference
android:key="app_id_preference3"
android:title="some title"
android:summary="some summary"
/>
</PreferenceCategory>
'preferencesMap.entrySet()' speichert Aufruf Strings, nicht die Strings, die diese Ansichten hinzugefügt haben. Ich denke nicht, dass irgendetwas eine EditTextPrefference sein wird –