2012-06-10 61 views
2

我有一個PreferenceActivity,我想用於AndroidAnnotations @SharedPref,因此PreferenceActivity會使用@SharedPref中的數據。如何使用帶有PreferenceActivity的AndroidAnnotations SharedPref?

有沒有做到這一點的好辦法?我如何告訴活動使用我在別處創建的@SharedPref?沒有設定每個偏好的價值,有沒有一種好的方法來做到這一點?

這是我目前使用的活動代碼:

public class SettingsActivity extends PreferenceActivity { 

    @SuppressWarnings("deprecation") 
    @Override 
    public void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     addPreferencesFromResource(R.xml.preferences); 
    } 
} 

回答

3

一個PreferenceActivity活動,所以你只需要@EActivity進行註解開始使用說明,如@SharedPref

如果要在活動之間共享偏好,AndroidAnnotations具有範圍的概念,如定義here

您應該使用Scope.UNIQUE範圍在所有活動之間共享它。

SharedPref被認爲是一種輕鬆將數據存儲到SharedPreferences中的方法。不一定要與偏好活動一起使用。

您可以使用getSharedPreferences()來訪問共享首選項實例,不能使用它來定義要在活動中使用的首選項。所以這主要是使用正確的Android API的問題。

@EActivity 
public class SettingsActivity extends PreferenceActivity { 

    @Pref 
    MyPrefs_ myPrefs; 

    @Override 
    public void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     getPreferenceManager().setSharedPreferencesName("MyPrefs"); 
     addPreferencesFromResource(R.xml.preferences); 
    } 

} 
相關問題