2011-03-02 2 views
20

기본 설정에서 내 첫 시도는 PreferenceActivity에 대한 지식이 없었습니다. 이제는 모든 사용자 환경 설정을 특정 환경 설정 파일에 저장하는 앱이 있습니다.PreferenceActivity에서 사용자 지정 기본 설정 파일을 사용하는 방법

PreferenceActivity를 사용하여 마이그레이션하고 싶지만 사용자가 기본 설정을 유지하도록해야합니다.

내 PreferenceActivity에게 모든 환경 설정에 대해 특정 파일을 사용하도록 알려줄 수 있습니까? 당신이 원하는 무엇을

+0

이전 기본 설정을 읽고 일반 기본 설정으로 저장하는 방법을 쓸 수 있습니다 – Maaalte

+0

마이그레이션에 대한 하나의 해결책으로 생각했습니다. 그렇다면 마이그레이션 코드를 제거 할 수는 없습니까? 주변에 내 앱의 이전 버전이 없음을 보장 할 방법이 없습니다. – Yashima

답변

1

앱의 시작 부분에 모든 기본 설정을 읽은 다음

Editor e = PreferenceManager.getDefaultSharedPreferences(getBaseContext()).edit(); 
e.putBoolean("yourPreference", true); 
e.putString("yourOtherPreference", "This is the Value"); 
... 
e.commit(); 

내가 그

+0

처음에는 Andrew의 파일 아이디어 이름 바꾸기를 선호했지만 지금은이 변형을 구현했습니다. 나는 후자를하는 방법을 결코 알지 못했다. 그래서 나는 명백한 것으로 고집했다. 감사! – Yashima

+0

좋은, 메신저 도왔습니다! – raukodraug

0

Maaalte가 올바른지 도움이되기를 바랍니다 사용 Preferences에 저장할 수이며, onCreate는 사용자 정의 파일의 존재 여부를 테스트하고,이 파일이 있으면 표준 공유 환경 설정 파일 이름으로 바꿉니다.

또 다른 옵션은 기존 환경 설정을 하나씩 읽은 다음 공유 환경 설정 API를 사용하여 환경 설정을 읽고 추가 한 다음 이전 환경 설정을 삭제하는 것입니다.

63

이를 게시하려면 너무 늦을 수 있지만, 여기에 좋은 솔루션

당신은 다음과 같이 사전에 기본 공유 환경 설정 파일의 이름을 설정 찾을 수 있습니다

public class MyPreferencesActivity extends PreferenceActivity { 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     PreferenceManager prefMgr = getPreferenceManager(); 
     prefMgr.setSharedPreferencesName("my_preferences"); 
     prefMgr.setSharedPreferencesMode(MODE_WORLD_READABLE); 

     addPreferencesFromResource(R.xml.preferences); 
    } 
} 

나는 이것이 누군가를 돕기를 바랍니다.

감사합니다.

+4

좋은 답변 (비록 더 이상 사용되지 않지만 ...) 링크가 끊어져 편집되었으므로 링크에서 코드가 복사됩니다. IMHO이지만 'MODE_WORLD_READABLE'을 사용하는 것은 실수입니다. –

관련 문제