2012-09-04 72 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同名,以获得不同活动共享的偏好。