내 기본 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>
예, 작동하지만 XML 파일을 계속 읽고 싶지는 않습니다. 이것은 이것이 할 일입니다. –