Как постоянно хранить данные, используя несколько вызовов активности в Shared Preference? - PullRequest
0 голосов
/ 30 марта 2020

Поэтому я пытаюсь добавить одно значение в мои общие предпочтения каждый раз, когда из 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")
        }
...