2014-01-18 1 views
0

안녕하세요 PreferencesFragment에 문제가있어서 설정을 저장하는 중입니다. Android에서 전화 언어를 변경하면 환경 설정의 저장된 값은 이전 언어로 유지되며 PreferencesFragment에 설정되지 않습니다. 각 언어마다 다른 값 폴더가 있습니다. 문제를 해결하려면 어떻게해야합니까?SharedPreferences 및 다른 언어

+0

질문을 더 명확하게 설명하십시오. 기호 문자열이 변경되지 않습니다 (예 : 제목, 요약 등)? 또는 환경 설정의 저장된 값을 자동으로 변경 하시겠습니까? –

+0

기본 설정의 저장된 값을 자동으로 변경하고 싶습니다. – keysersoze

+0

PreferenceActivity를 마쳤다가 다시 시작하십시오. –

답변

0

환경 설정의 값을 변경하려는 것이 좋습니다. 나는 그것이 API에 의해 자동적으로 수행 될 수 있다고 생각하지 않는다. 기본 설정 값을 설정하는 코드를 작성해야합니다.

values-xx 디렉토리에 언어 별 기본 설정 값을 저장할 수 있습니다. 예를 들면. 문자열, 정수 등

누군가가 전화의 언어를 변경하면 활동이 다시 시작됩니다. 이 값을 onCreate의 환경 설정 값을 변경할 수있는 기회로 사용해야합니다. 먼저 사용중인 현재 언어를 저장하여 언어가 변경되었는지 여부를 감지하는 데 사용할 수 있습니다. 방금 getResources()를 호출하여 Resources 객체를 사용하여 값을 가져 모든 언어에 따라 기본 설정 값을 변경, 언어 변화를 감지하면, 지금

(Locale.getDefalt())

을 수행 할 Locale를 사용할 수 있습니다.

+0

ListPreference 및 MultiSelectListPreference를 수행하는 방법을 모르겠습니다. – keysersoze

+0

언어 별 문자열을 환경 설정에 저장하는 이유는 무엇입니까? 문자열을 표시하고 정수로 저장해야합니다. 그래서 LisPreference (항목, entryValues)에 대한 두 가지 속성이 있습니다. 저장된 정수 값에서 매핑 된 변환 문자열을 얻을 수 있습니다. –

0

응용 프로그램의 환경 설정 언어는 사용자의 전화 언어에 종속되지 않습니다. 그 의존성이 있다면, 첫 번째로 응용 프로그램에서 필요조차하지 마십시오. 전화 언어에 따라 자동 언어를 사용하는 방식으로 코딩해야합니다.