2016-08-03 14 views
0

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> 

+0

'preferencesMap.entrySet()' speichert Aufruf Strings, nicht die Strings, die diese Ansichten hinzugefügt haben. Ich denke nicht, dass irgendetwas eine EditTextPrefference sein wird –

Antwort

0

Ok, der richtige Weg, dies zu tun ist durch findPreference mit den wichtigsten