如何使setTextView.text在Android应用程序(Kotlin)中持久化



我目前正在尝试让TextView显示我的TimePicker返回的任何日期。它是有效的,但如果我进入另一个片段并返回,重新启动应用程序等,文本将恢复到我设置的默认值。有人知道我如何使我设置的文本持久化吗?这是我正在使用的代码。

view.timeButton.setOnClickListener {
val cal = Calendar.getInstance()
val timeSetListener = TimePickerDialog.OnTimeSetListener { timePicker, hour, minute ->
cal.set(Calendar.HOUR_OF_DAY, hour)
cal.set(Calendar.MINUTE, minute)
alarmText.text = ("Texts at " + SimpleDateFormat("HH:mm").format(cal.time))
}
TimePickerDialog(
context,
timeSetListener,
cal.get(Calendar.HOUR_OF_DAY),
cal.get(Calendar.MINUTE),
false
).show()
}

您可以使用SharedPreference持久保存

view.timeButton.setOnClickListener {
val cal = Calendar.getInstance()
val timeSetListener = TimePickerDialog.OnTimeSetListener { timePicker, hour, minute ->
cal.set(Calendar.HOUR_OF_DAY, hour)
cal.set(Calendar.MINUTE, minute)
val simpleDateFormat = SimpleDateFormat("HH:mm")
val date = simpleDateFormat.format(cal.time)
alarmText.text = ("Texts at " + date)
val preferences: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
preferences.edit().putString("mydate", date).apply();

}
TimePickerDialog(
context,
timeSetListener,
cal.get(Calendar.HOUR_OF_DAY),
cal.get(Calendar.MINUTE),
false
).show()
}

在您的应用程序的onCreate中检索存储值

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
try {
val preferences: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
val simpleDateFormat = SimpleDateFormat("HH:mm")
val date: Date = simpleDateFormat.parse(preferences.getString("mydate", ""))
alarmText.text = ("Texts at " + date)
}
catch (e: ParseException) {
}
}

最新更新