我有一项活动可以使用 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);
我还有另一个活动,我想使用我在第一个活动中保存的数据, 我搜索并尝试了一些代码,但没有任何效果! 那么如何将第一个活动中保存的数据用于第二个活动?
答案 0 :(得分:1)
在第二个活动中,您应该获得默认的共享首选项(保存时使用的首选项)..
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
int birthChosenDay = prefs.getInt("birthChosenDay", MODE_APPEND);
AS
PreferenceManager.getDefaultSharedPreferences(this);
将提供对整个应用程序包的全局首选项文件的访问权限;任何活动都可以访问首选项(内部,保存首选项的xml文件将命名为your.application.package_preferences.xml
)。
getPreferences(Context.MODE_PRIVATE);
仅为contextInstance类提供首选项:只有上下文类的实例才能访问这些首选项(表示您的包仍然是your.application.package
而您在your.application.package.SecondActivity
,而首选项文件是{ {1}})。