SharedPreferences 没有改变
SharedPreferences is not changing
我有一个 activity 显示简单的 2 个 TextView,并从中获取它们的文本
位于另一个 class 中的字符串数组。
我试图在加载时加载数组中的第一个字符串,然后在下一次加载 activity 时将 textview 中的值更改为我在 textView 上首先显示的字符串之后的字符串,并且很快。
我更改了 sharedprefrences 的值,但它仍然只显示第一个字符串。问题是什么?我更改了字符串数组索引的值,但它仍然只显示第一个字符串。
提前致谢。
public class DailyMessage extends AppCompatActivity {
public SharedPreferences startExplePref;
String[] DescS;
String[] titleS;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_daily_message);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
String currentDateTimeString = DateFormat.getDateTimeInstance().format(new Date());
startExplePref = PreferenceManager.getDefaultSharedPreferences(this);
boolean isFirstRun = startExplePref.getBoolean("FIRSTRUN", true);
if (isFirstRun) {
SharedPreferences.Editor editor = startExplePref.edit().putBoolean("FIRSTRUN", false);
editor.commit();
startExplePref.edit().putInt("Day",0).commit();
}
TextView titleTV = (TextView)findViewById(R.id.title);
TextView descTV = (TextView)findViewById(R.id.description);
TextView dateTV = (TextView)findViewById(R.id.date);
dateTV.setText(currentDateTimeString);
int dayForTitle = startExplePref.getInt("Day",0);
titleTV.setText(DailyMessagesContent.content[dayForTitle]);
descTV.setText(DailyMessagesContent.content[dayForTitle]);
dayForTitle = dayForTitle++;
startExplePref.edit().putInt("Day",dayForTitle).commit();
}
}
这是来自另一个的字符串 class:
public static String content[] = {"test1", "test2","test3"};
因为每次使用dayForTitle = dayForTitle++;
添加这个变量,但是dayForTitle++
会return原始值0,所以你只需要将dayForTitle = dayForTitle++;
改为单dayForTitle++
.
我有一个 activity 显示简单的 2 个 TextView,并从中获取它们的文本 位于另一个 class 中的字符串数组。 我试图在加载时加载数组中的第一个字符串,然后在下一次加载 activity 时将 textview 中的值更改为我在 textView 上首先显示的字符串之后的字符串,并且很快。 我更改了 sharedprefrences 的值,但它仍然只显示第一个字符串。问题是什么?我更改了字符串数组索引的值,但它仍然只显示第一个字符串。 提前致谢。
public class DailyMessage extends AppCompatActivity {
public SharedPreferences startExplePref;
String[] DescS;
String[] titleS;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_daily_message);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
String currentDateTimeString = DateFormat.getDateTimeInstance().format(new Date());
startExplePref = PreferenceManager.getDefaultSharedPreferences(this);
boolean isFirstRun = startExplePref.getBoolean("FIRSTRUN", true);
if (isFirstRun) {
SharedPreferences.Editor editor = startExplePref.edit().putBoolean("FIRSTRUN", false);
editor.commit();
startExplePref.edit().putInt("Day",0).commit();
}
TextView titleTV = (TextView)findViewById(R.id.title);
TextView descTV = (TextView)findViewById(R.id.description);
TextView dateTV = (TextView)findViewById(R.id.date);
dateTV.setText(currentDateTimeString);
int dayForTitle = startExplePref.getInt("Day",0);
titleTV.setText(DailyMessagesContent.content[dayForTitle]);
descTV.setText(DailyMessagesContent.content[dayForTitle]);
dayForTitle = dayForTitle++;
startExplePref.edit().putInt("Day",dayForTitle).commit();
}
}
这是来自另一个的字符串 class:
public static String content[] = {"test1", "test2","test3"};
因为每次使用dayForTitle = dayForTitle++;
添加这个变量,但是dayForTitle++
会return原始值0,所以你只需要将dayForTitle = dayForTitle++;
改为单dayForTitle++
.