繁体   English   中英

SharedPreferences和int

[英]SharedPreferences and int

我是JAVA和Android Studio的新手。 我遇到过有关SharedPreferences API的问题,我在保存KEYS中的int值时遇到了麻烦。

所以,基本上我是从Calendar对象请求DAY_OF_YEAR,这是一个int,然后我想将该int存储到SharedPreferences中,并将其传递给第二个有意图的活动,但是当我在第二个活动中请求该值时,它总是返回null。

private SharedPreferences mPreferences;
private int SAVED_DAY_VALUE;
private int mCurrentDayNumber;
private int mDayState;

OnCreate:

Calendar calendar = Calendar.getInstance();
mDayCurrentNumber = calendar.get(Calendar.DAY_OF_YEAR);

// Both lines ask SAVED_DAY_VALUE to be String
mDayState = getPreferences(MODE_PRIVATE).getInt(SAVED_DAY_VALUE, 0);
mPreferences.edit().putInt(SAVED_DAY_VALUE, mCurrentDayNumber);

mButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent secondActivityIntent = new Intent(MainActivity.this, SecondActivity.class);
            secondActivityIntent.putExtra("PassDay", mDayState);

我认为我的变量搞砸了。 感谢帮助像我这样的新手。

查看本教程

基本上,当您将数据保存到SharedPreferences时,您需要密钥和实际数据。 密钥始终是字符串,它仅用于访问数据。

例如,让一些int放入SharedPreferences然后访问它。

存储数据

要存储数据,首先应初始化SharedPreferences

SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0); 
Editor editor = pref.edit();

然后在编辑器中我们放入我们的数据(第一个参数是键,第二个参数是实际数据)

editor.putInt("SAVED_DAY_VALUE", mCurrentDayNumber)
editor.commit();

检索数据

用于检索您刚刚调用的数据

pref.getInt("SAVED_DAY_VALUE", 0);

其中0是默认值,如果未找到键“SAVED_DAY_VALUE”。

希望它有所帮助,欢迎来到Android :)

getInt()putInt()都有第一个参数key ,键应该是字符串,但是你已经将SAVE_DAY_VALUE定义为int。

所以它应该是一个String类似String SAVE_DAY_KEY = "currentDay"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM