2011-01-12 3 views
8

Android 앱에 XML로 정의 된 Android 환경 설정 화면이 2 개 있습니다. 내가 화면 2 싶습니다 2XML의 다른 환경 설정 화면에서 별도의 Android 환경 설정 화면 참조

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:key="screen2"> 
    <CheckBoxPreference 
     android:key="checkbox" 
     android:title="Checkbox"> 
    </CheckBoxPreference> 
</PreferenceScreen> 

예를 들어

, 화면 1

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:key="screen1"> 
    <PreferenceCategory android:title="Preferences"> 
     <CheckBoxPreference 
      android:defaultValue="true" 
      android:title="test" 
      android:key="test_pref"/> 
    </PreferenceCategory> 
</PreferenceScreen> 

및 화면은 별도의 화면은 그 자체로 액세스 할 수 있도록 할 수 있지만 또한 환경 설정을 부탁합니다 또한 스크린 하나의 일부가 될 수 있습니다. 화면 1에서 화면 2를 간단히 참조 할 수있는 간단한 방법이 있습니까? 또는 화면 1의 하위 환경 설정 화면에서 본질적으로 동일한 환경 설정 항목을 반복해야합니다.

+0

당신이' '태그를 사용하려고 했습니까? PreferenceScreen에서 작동하는지 확실하지 않지만 다른 레이아웃 내에서 일반 레이아웃을 포함하는 방법입니다. http://developer.android.com/resources/articles/layout-tricks-reuse.html –

+0

Mayra의 제안에 감사드립니다. 불행히도 레이아웃 위젯을 재사용하는 것으로 제한되어있는 것 같습니다. 그러나 나는 그것에 대해 결코 알지 못했다. 그래서 나는 아직도 뭔가를 배웠다! 건배 – Tim

답변

12

두 파일을 XML로 "병합"하는 방법을 찾지 못했지만 병합을 시도 할 수있었습니다 사용하여 Java :

@Override 
public void onCreate(final Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    getPreferenceManager().setSharedPreferencesName(Settings.PREFERENCES_NAME); 
    getPreferenceManager().setSharedPreferencesMode(Context.MODE_WORLD_READABLE); 

    // add the first xml 
    addPreferencesFromResource(R.xml.preferences_settings); 
    // add another xml 
    addPreferencesFromResource(R.xml.preferences_mail_settings); 

    // do the things, that need to be done... 
} 

행운

+0

코드를 작성하는 것이 좋습니다. 좋아. 도움을 주셔서 감사합니다 Tom – Tim

6
당신은 텐트와 XML에서이 작업을 수행 할 수 있습니다

:

,210

의 AndroidManifest.xml :

<activity android:name="com.example.Preference2Activity"> 
    <intent-filter> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <action android:name="com.example.PREFERENCE_2" /> 
    </intent-filter> 
</activity> 
+1

답변을 upvote하고 싶었지만 담당자가 1,024 명이었고 좋은 라운드 번호를 변경하지 못했습니다. –