我想获取值 并设置这些值 到文本框。我可以得到值 从数组并在文本框中设置它们,但第二天的值保持不变。不设置数组中的下一个值?我该怎么办?第一个
0aydgbwb1#
这很简单
Resources res = getResources(); String[] mornings = res.getStringArray(R.array.morning); //then use mornings as you use array.
lrpiutwd2#
String morning[] = getResources().getStringArray(R.array.morning);
bwitn5fc3#
// Solution SharedPreferences sharedPreferences = getSharedPreferences("my_preference", MODE_PRIVATE); SharedPreferences.Editor editor = sharedPreferences.edit(); String currentDate = new SimpleDateFormat("dd-MMM-yyyy", Locale.getDefault()).format(System.currentTimeMillis()); String[] msgArrays = getResources().getStringArray(R.array.morning); String savedDate = sharedPreferences.getString(DATE_KEY, ""); int savedCounter = sharedPreferences.getInt(COUNTER_KEY, 0); // First time if (savedDate.isEmpty()) { editor.putInt(COUNTER_KEY, savedCounter); editor.putString(DATE_KEY, currentDate); editor.apply(); } else if (!savedDate.equals(currentDate)) { // New date appears, update shared preference. savedCounter++; if (savedCounter < msgArrays.length) { editor.putInt(COUNTER_KEY, savedCounter); editor.putString(DATE_KEY, currentDate); editor.apply(); } } binding.tvTitle.setText(msgArrays[savedCounter]);
在这段代码中,我将通过日期和计数器更新共享首选项。
**日期:**将保存该日期以用于下一个日期,如果这两者不匹配,则将使用计数器更新共享首选项。**计数器:**字符串数组的位置。重置:我添加了另一项检查,如果计数器到达数组末尾,它将重置为'0'。
3条答案
按热度按时间0aydgbwb1#
这很简单
lrpiutwd2#
bwitn5fc3#
在这段代码中,我将通过日期和计数器更新共享首选项。
**日期:**将保存该日期以用于下一个日期,如果这两者不匹配,则将使用计数器更新共享首选项。
**计数器:**字符串数组的位置。
重置:我添加了另一项检查,如果计数器到达数组末尾,它将重置为'0'。