Как сделать сохранение данных SharedPreferences в Kotlin?
Я хочу сделать сохранение значения из EditText по нажатию на одну кнопку и выводить его в TextView по нажатию на другую. Вот мой код:
- Разметка
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:gravity="center|top"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/ed1"
android:layout_width="match_parent"
android:layout_height="50dp" />
<Button
android:text="Save"
android:id="@+id/btn1"
android:layout_width="match_parent"
android:layout_height="50dp"/>
<Button
android:text="Load"
android:id="@+id/btn2"
android:layout_width="match_parent"
android:layout_height="50dp"/>
<TextView
android:id="@+id/tv1"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
- Класс активности
class MainActivity : AppCompatActivity() {
val PREFS_FILENAME = "file"
val SETT = "settings"
var prefs: SharedPreferences? = null
var TEXT1 = ""
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
prefs = this.getSharedPreferences(PREFS_FILENAME, 0)
TEXT1 = ed1.text.toString()
btn1.setOnClickListener {
val editor = prefs!!.edit()
editor.putString(SETT, TEXT1)
editor.apply()
if (prefs!!.contains(PREFS_FILENAME)) {
Toast.makeText(applicationContext, "Saved!", Toast.LENGTH_SHORT).show()
}
}
btn2.setOnClickListener {
TEXT1 = prefs!!.getString(SETT, "").toString()
tv1.text = TEXT1
if (prefs!!.contains(PREFS_FILENAME)) {
Toast.makeText(applicationContext, "Loaded!", Toast.LENGTH_SHORT).show()
}
}
}
}
Мой проблема в том, что по нажатию на кнопки выводится сообщение (на сколько я понимаю, сохранение происходит успешно), но в TextView сообщение не выводится. Что у меня не так?