Поэтому я пытаюсь добавить одно значение в мои общие предпочтения каждый раз, когда из MainActivity вызывается действие. Но значение заменяется в SharedPreference на последнее значение при каждом новом вызове. Я пытался искать везде, но во всех примерах данные хранятся в одном вызове операции.
Ниже приведены мои фрагменты кода
Сохранить код в классе настроек
fun save(KEY_NAME: String, value: String) {
val editor: SharedPreferences.Editor = prefs.edit()
/*var TAG:String = "Logs"
Log.e(TAG,KEY_NAME)
Log.e(TAG,value)*/
editor.putString(KEY_NAME,value)
editor.apply()
}
Деятельность метод класса, из которого добавляются данные
add.setOnClickListener {
val habitName = habit_name_id.text.toString()
var TAG:String = "Logs"
Log.e(TAG,habitName)
try {
prefs.save(habitName, habitName)
}catch (e: NullPointerException){
Log.e(TAG,habitName)
}
val mainActivity = Intent(applicationContext, MainActivity::class.java)
startActivity(mainActivity)
}
Основная операция, из которой извлекаются данные
try {
val savedHabits = prefs.getHabits()
for (habits in savedHabits.values) {
var TAG:String = "Logs"
Log.e(TAG,habits.toString())
}
}catch (e: NullPointerException){
print("No data")
}