2011-05-31 110 views
0

多設置我有屬於同一個應用中的兩個動態壁紙,我想對每一個單獨的偏好設置,但我所遇到的第一個設置問題正在使用的兩個壁紙。單獨的動態壁紙

<application android:icon="@drawable/icon" android:label="@string/app_name"> 
    <service 
     android:label="first wallpaper" 
     android:name="com.package.this1.number1" 
     android:permission="android.permission.BIND_WALLPAPER"> 
     <intent-filter> 
      <action android:name="android.service.wallpaper.WallpaperService" /> 
     </intent-filter> 
     <meta-data android:name="android.service.wallpaper" android:resource="@xml/source1" /> 
    </service> 

    <service 
     android:label="second wallpaper" 
     android:name="com.package.this2.number2" 
     android:permission="android.permission.BIND_WALLPAPER"> 
     <intent-filter> 
      <action android:name="android.service.wallpaper.WallpaperService" /> 
     </intent-filter> 
     <meta-data android:name="android.service.wallpaper" android:resource="@xml/source2" /> 
    </service> 

    <activity android:label="@string/settings" 
     android:name=".this1.Settings1" 
     android:exported="true" 
     android:icon="@drawable/icon"> 
    </activity> 

    <activity android:label="@string/settings" 
     android:name=".this2.Settings2" 
     android:exported="true" 
     android:icon="@drawable/icon"> 
    </activity> 

</application> 

我失去了一些簡單的或者是不可能做到這一點而不進行2個獨立的應用程序?

這裏的

public class Settings1 extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener { 
@Override 
protected void onCreate(Bundle bundle) { 
    super.onCreate(bundle); 
    getPreferenceManager().setSharedPreferencesName(number1.SHARED_PREFS_NAME); 
    addPreferencesFromResource(R.xml.this1_settings); 
    getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); 
} 

public class Settings2 extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener { 
@Override 
protected void onCreate(Bundle bundle) { 
    super.onCreate(bundle); 
    getPreferenceManager().setSharedPreferencesName(number2.SHARED_PREFS_NAME); 
    addPreferencesFromResource(R.xml.this2_settings); 
    getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); 
} 

任何建議,將大加讚賞我的設置1和設置2類的代碼。

回答

1

Moonblink(安卓的tricorder的作者)也有叫底動態壁紙集合。 Substrate確實將多個壁紙合併爲一個封裝,並且不止一個壁紙具有設置活動。我建議你檢查他的結構。從這裏開始http://code.google.com/p/moonblink/source/browse/ 並尋找底物(在幹線下)。希望這可以幫助。

P.S.該項目家就在這裏:http://code.google.com/p/moonblink/wiki/Substrate

+0

我有2個獨立的SHARED_PREFS_NAME,一個在每個壁紙。它們共享相同的名稱「SHARED_PREFS_NAME」,其值不同。 「wallpaperprefs1」和「wallpaperprefs2」,但我明確參考了上面提到的單獨的PreferenceActivity。另一個令人費解的事情是我使用了兩個獨立的XML設置,但始終使用PreferenceActivity 1。 – 2011-05-31 20:58:40

+0

好吧,我的錯。我只是這樣做沒有用,它仍然需要第一個偏好活動。 – 2011-05-31 21:41:46

+0

@Alejandro我發現了一個人做這個的例子,並編輯我的答案來提供鏈接。 – 2011-06-01 02:13:21