0

get all에서 반환되는지도를 보면 해시 맵으로 설정 한 값만 볼 수 있으며 EditTextPreference로 캐스팅 할 수 없습니다.SharedPreferences가 XML의 기본 설정 또는 형식을 표시하지 않습니다.

그것의를 getAll 모양()는 XML 값에 대한 기본 설정에 대한 요약을 설정 내가 뭘하려고

에서 기본 해시가 아닌 유형을 받고있다.

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()'매장으로 findPreference를 호출하는 것입니다 문자열, 해당보기를 추가 한 문자열이 아닙니다. 나는 아무것도 EditTextPrefference의 인스턴스가 될 것이라고 생각하지 않습니다. –

답변

0

좋아,이 일을 올바른 방법으로 키