SharedPreferences不会更改

时间:2016-01-16 09:52:57

标签: java android string android-sharedpreferences

我有一个活动,显示简单的2个TextView,并从中获取文本 位于另一个类中的字符串数组。 我在加载时尝试加载数组中的第一个字符串,然后在下次加载活动时更改,将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();

}


}

这是来自其他类的字符串:

public static String content[] = {"test1", "test2","test3"};

1 个答案:

答案 0 :(得分:0)

每次使用json_decode($content);添加此变量时都会发生这种情况,但dayForTitle = dayForTitle++;将返回原始值0,因此您只需将dayForTitle++更改为单{{1} }}