问题描述
我有一个应用程序,我最近在我的应用程序中添加了一个 DatePicker,但是每当用户输入日期和时间并保存他们的项目时,当他们返回工作时,工作就消失了,好像它从未开始过这导致我假设它没有被保存在任何地方。
我只是想知道如何将用户输入的数据存储到我的 DatePicker/Spinner 中。
以下是我的日期选择器的 main_layout 代码。
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btn_timePicker"
android:text="What's the date?"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textTime"
android:layout_marginTop="20dp"
android:textColor="#000000"
android:textSize="22sp"
android:textStyle="bold"
tools:text="@tools:sample/date/ddmmyy"/>
btn_timePicker.setonClickListener {
saveData()
}
private fun saveData() {
val insertedText = btn_timePicker.text.toString()
textTime.text = insertedText
val sharedPreferences = getSharedPreferences("sharedPrefs",Context.MODE_PRIVATE)
val editor = sharedPreferences.edit()
editor.apply {
putString("STRING_KEY",insertedText)
}.apply()
Toast.makeText(this@NewsActivity,"Data Saved",Toast.LENGTH_SHORT).show()
}
private fun loadData() {
val sharedPreferences = getSharedPreferences("sharedPrefs",Context.MODE_PRIVATE)
val savedString = sharedPreferences.getString("STRING_KEY",null)
textTime.text = savedString
}
解决方法
-
您可以使用 roomDb 来存储复杂数据:https://developer.android.com/codelabs/android-room-with-a-view-kotlin#0
-
或者你可以使用 dataStore 来存储简单的数据:https://developer.android.com/codelabs/android-preferences-datastore#0
一点都不难。
您可以通过多种方式存储用户数据。其中之一是使用 SharedPrefrences
,您可以了解它 here。
另一种方法是将其存储在您可以了解 here 的 SQLite 数据库中。
您也可以将其存储在 storage 上的文件中,但我根本不推荐这样做。