2011-09-14 2 views
0

내 기본 PreferenceActivity XML은 본질적으로 여러 종류의 기본 설정에 대한 인덱스이므로 여러 PreferenceActivity 클래스가 있습니다.Android : 여러 PreferenceActivity 인스턴스에서 사용하는 XML의 기본값을 초기화하는 방법은 무엇입니까?

설치 후 앱이 처음 실행될 때 XML에서 환경 설정 기본값을 설정하는 방법에 대한 도움말을 찾고 있습니다. 나는 실패 시도 다음 (에서의 주요 활동에서 onCreate()) :

R.xml.prefs 마스터 환경 설정 파일을, 그리고 다른 하위 수준의 환경 설정이다
PreferenceManager.setDefaultValues(ctx, R.xml.prefs, false); 
PreferenceManager.setDefaultValues(ctx, R.xml.prefsdisplay, false); 
PreferenceManager.setDefaultValues(ctx, R.xml.prefsloc, false); 
PreferenceManager.setDefaultValues(ctx, R.xml.prefsmaps, false); 
PreferenceManager.setDefaultValues(ctx, R.xml.prefsmisc, false); 

. 나는 두 가지 기본 활동을

주, 그 기술자로 R.xml.prefs를 사용 하나

addPreferencesFromResource(R.xml.prefs); 

과 그 시작의 의도에 전달되는 어떤 XML 파일 이름을 사용하는 다른. (관심이 될 것입니다 1.6까지 BTW, 다른 방법이 호환되는이 문제를 처리하기 위해) :

Intent intent = this.getIntent(); 
String data = intent.getDataString(); 
String pkgName = getPackageName(); 
int resID = getResources().getIdentifier(data , "xml", pkgName); 
addPreferencesFromResource(resID); 

파일 : R.xml.prefs은 다음과 같습니다

 <PreferenceCategory android:title="Map Settings"> 
     <PreferenceScreen android:title="Map Display Settings" 
      android:summary="Control Location Settings"> 
      <intent 
       android:action="android.intent.action.VIEW" 
       android:targetPackage="com.mycompany.app" 
       android:targetClass="com.mycompany.app.app.SubPrefsAct" 
       android:data="prefsloc"/> 
     </PreferenceScreen> 
     </PreferenceCategory> 
    </PreferenceScreen> 

그리고 prefsloc.xml은 다음과 같습니다 :

<?xml version="1.0" encoding="utf-8"?> 
    <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 
     <PreferenceCategory android:title="GPS and Location"> 
     <CheckBoxPreference android:key="ShowLocation" 
      android:summary="Shows location symbol on map" android:defaultValue="true" 
      android:title="Show Location"></CheckBoxPreference> 
     <CheckBoxPreference android:key="UseGps" 
      android:summary="Uses GPS to refine position" android:title="Use GPS" 
      android:defaultValue="true"></CheckBoxPreference> 
     </PreferenceCategory> 
    </PreferenceScreen> 

답변

1

내 질문에 대답 : 대신setDefaultValues ​​(...) 대신을 사용하십시오.

그렇지 않으면 첫 번째 XML 파일을 호출하면 나머지 호출이 수행되지 않습니다.

+1

예, 작동하지만 XML 파일을 계속 읽고 싶지는 않습니다. 이것은 이것이 할 일입니다. –

관련 문제