2014-06-17 4 views
0

현재 조각이있는 환경 설정 활동을 사용하고 있습니다. 나는 사용자에 대한 설명 캡션을 설정하기 위해 이러한 환경 설정을 정의한 xml 파일의 android : summary를 사용하고 있으며 사용자가 환경 설정 값을 변경하고 모든 것이 잘 작동하면 각 환경 설정에서 setSummary를 사용합니다. 그러나 사용자가 EditTextPreference에서 선택을 취소하면 XML 태그 android : summary에서 설명 텍스트를 표시하고 싶습니다. 내가 어떻게 그걸 얻을 수 있니?android preferences 기본 설정으로 돌아 가기 요약

미리 도움을 주셔서 감사합니다.

+0

당신은 strings.xml의 문자열 자원으로 기본 summray을 설정해야하고 당신은 다시 설정할 수 매번 당신은 할 수 있습니다. – Opiatefuchs

+0

네,하지만 제 수업은 모든 EditTextPreference에 사용되는 제네릭 클래스이고, 저는 그것들이 많이 있습니다. 이 클래스에 특정 항목을 추가하여 각 항목에 해당하는 문자열을 가져올 수는 없습니다. 이 일을하는 일반적인 방법을 원합니다 ... setSummary (getDefaultSummary())와 같은 것 ... :) – user3747760

답변

0

좋아요. 알아 냈습니다. "key_summary"라는 모든 기본 설정 키에 리소스 문자열을 추가하고 기본 설정을 정의하는 xml 파일에서 android : summary로 사용하면됩니다. 다음과 같이 그런 다음 onSharedPreferenceChanged 기능에 바로 요약으로 해당 문자열을로드 :

public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) 
{ 
    Preference preference = findPreference(key); 
    if(preference instanceof EditTextPreference) 
    { 
     EditTextPreference editPref = (EditTextPreference)preference; 
     String szPref = editPref.getText(); 
     if(null!=szPref&&0<szPref.length()) 
      editPref.setSummary(szPref); 
     else 
     { 
      Activity activity = getActivity(); 
      int nSummary = getResources().getIdentifier(key + "_summary", "string", activity.getPackageName()); 
      if(0<nSummary) 
       editPref.setSummary(getString(nSummary)); 
      else 
       editPref.setSummary(szPref); 
     } 
    } 
} 
관련 문제