0

我有一个使用sharedpreferences保存一些数据的活动,如下所示:

public void birthDateSharedPreferences(int calculatedBirthYear, int calculatedBirthMonth, int calculatedBirthDay)
    {
      SharedPreferences birthDatePreferences = PreferenceManager.getDefaultSharedPreferences(this);
      SharedPreferences.Editor editor = birthDatePreferences.edit();
      editor.putInt("birthChosenDay",calculatedBirthDay);
      editor.putInt("birthChosenMonth",calculatedBirthMonth);
      editor.putInt("birthChosenYear",calculatedBirthYear);
      editor.commit();
      Toast.makeText(birthDate.this,"The date was saved", Toast.LENGTH_LONG).show();
      Intent saved = new Intent(birthDate.this,MenuActivity.class);
      startActivity(saved);
      finish();
}

这是第二个活动

SharedPreferences prefs = getPreferences(MODE_PRIVATE); 
                   int birthChosenDay = prefs.getInt("birthChosenDay", MODE_APPEND);

我有另一个活动,我想使用我在第一个活动中保存的数据,我搜索并尝试了一些代码,但没有任何效果!那么如何将第一个活动中保存的数据用于第二个活动

4

1 回答 1

1

在第二个活动中,您应该获得默认的共享首选项(保存时使用的首选项)..

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
int birthChosenDay = prefs.getInt("birthChosenDay", MODE_APPEND);

作为:

 PreferenceManager.getDefaultSharedPreferences(this);

将提供对整个应用程序包的全局首选项文件的访问;任何活动都可以访问首选项(在内部,保存首选项的 xml 文件将被命名your.application.package_preferences.xml)。

getPreferences(Context.MODE_PRIVATE);

将只为 contextInstance 类提供首选项:只有上下文类的实例可以访问这些首选项(说你的包仍然是your.application.package并且你在your.application.package.SecondActivity,内部首选项文件是SecondActivity.xml)。

于 2012-12-06T13:12:55.787 回答