2011-01-12 14 views
8

Android uygulamasında XML'de tanımlanan iki Android Tercih Ekranına sahibim. Ben ekran 2 istiyorum 2XML'deki başka bir Tercih Ekranı içinden ayrı bir Android tercih ekranı referansı veriyor

<?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> 

Örneğin

, Ekran 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> 

ve Ekran ayrı bir ekran kendi başına erişilebilir olmasını olmak ama aynı zamanda tercihlerini istiyorum Ayrıca ekranın bir parçası olmak. Ekran 2'den ekran 2'ye basit bir şekilde başvuru yapmanın basit bir yolu var mı? Ya da ben esasen Ekranında bir alt tercihi ekranda aynı tercihi şeyler tekrarlamak gerekiyor ben XML doğrudan iki dosyayı "birleştirme" için bir yol bulamadık ama Bunları birleştirmek deneyebilirsiniz

+0

Eğer '' etiketini kullanarak denediniz mi? PreferenceScreen için çalışıp çalışmadığından emin değilim, ancak diğer düzenlerde normal düzenleri dahil etmenin yolu budur. Http://developer.android.com/resources/articles/layout-tricks-reuse.html –

+0

Bkz. Önerisi için teşekkürler. Maalesef düzen widget'lerini yeniden kullanmak sınırlı gibi görünüyor. Ama bunu hiç bilmiyordum, o yüzden hala bir şey öğrendim! Alkışlar – Tim

cevap

12

1. kullanarak 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... 
} 

İyi şanslar

Tom

+0

Kodda yapmak kesinlikle iyidir. Bu harika. Yardımınız için teşekkürler Tom – Tim

6
bir Niyet ile XML yapabilirsiniz

:

<PreferenceScreen android:key="screen1"> 
    <PreferenceScreen android:key="screen2"> 
    <intent android:action="com.example.PREFERENCE_2" /> 
    </PreferenceScreen> 
</PreferenceScreen> 

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

Cevabınızı almak istedim, ama cevabınız 1.024 ve iyi bir tur sayı değiştirmek için kendimi getiremedim. –