2012-09-04 68 views
0

我正在寫一個簡單的照片庫應用程序。我希望人們滾動瀏覽圖片,並有能力將它們添加到「收藏夾」列表中。Android設置偏好不保存數據

我已經構建了一個全局的Favorite類(將該類放入cGlobal類中,將其定義爲靜態的)。

現在我有這個工作,我希望能夠保存最喜歡的狀態 - 這個想法如下:

  1. 當應用程序第一次啓動時,它會加載從收藏夾列表主要活動的偏好。
  2. 在圖庫活動中,它會將喜歡的狀態保存在首選項中。

這似乎是當我加載首選項形式的主要活動它出現爲空。但我可以閱讀我在畫廊活動中寫的內容。我有以下的測試代碼:

在主要活動中,當應用程序啓動:

////////////////////////// ////////////////////////////////////////////////// //////

public class MainActivity extends cBaseView implements OnClickListener { 
    /** Called when the activity is first created. */ 

    String tr; 

    @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 

      // load in favrets from prefences 
      SharedPreferences pre=getPreferences(MODE_PRIVATE); 

// This does not work and tr is equal to no value. 
      tr=pre.getString("label","no value"); 

      // add listeners 

///////////////// //////////////////////

圖庫活動

public void onCreate(Bundle savedInstanceState) {  
    // test code 
    SharedPreferences pre=getPreferences(MODE_PRIVATE); 
    pre.edit().putString("label","ted").commit(); 

    // tr is set to ted, got the data 
    tr=pre.getString("label","no value"); 
} 

回答

2

當您使用getPreferences,這裏就是你得到的,根據to the javadoc of activity

檢索SharedPreferences對象訪問是 私人這項活動的偏好。通過傳入此活動的 類名稱作爲首選項名稱,這只是簡單地調用底層 getSharedPreferences(String,int)方法。

你應該getSharedPreferences同名,以獲得不同活動共享的偏好。