[英]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.