Я создал для вас небольшой образец. Это проект «Пустое действие» (согласно последнему шаблону Android Studio) со всеми значениями по умолчанию (в Kotlin).
После создания проекта я добавил второе пустое действие (через то же template), а затем я изменил их макеты, добавив в них кнопку редактирования и текст.
Что делают действия при запуске?
- Загружает любое существующее значение Shared Preference.
- Заполняет EditText существующим значением (по умолчанию 0)
Что делает нажатие кнопки?
- Сохранить существующее значение в общих настройках.
- Запускает следующее (или предыдущее) действие.
Действие 1 переходит в действие 2, а действие 2 возвращается к 1.
Обратите внимание, что независимо от того, какое число и какое действие вы используете, другой сразу выбирает его.
Вот где я оставил проект для вашей проверки:
https://github.com/Gryzor/MySharedPreferences
Если вы не хотите возиться с git clone, вот что делает действие 1:
// Obtain our private Shared Preferences
// This comes from ContextWrapper.
val sharedPreferences = getSharedPreferences("sample", Context.MODE_PRIVATE)
// restore existing value
val current = sharedPreferences.getInt("A_NUMBER", 0)
editText.setText("$current")
button.setOnClickListener {
val text = editText.text.toString()
val value = try {
text.toInt()
} catch (e: NumberFormatException) {
0
}
// Save the current value
sharedPreferences.edit().putInt("A_NUMBER", value).apply()
// ... and go to the next activity
val intent = Intent(this, SecondActivity::class.java)
startActivity(intent)
finish()
}
Другое действие идентично, без строки намерения:
val intent = Intent(this, MainActivity::class.java)
Заключение
На что я хотел обратить внимание всей этой чепухой, так это на то, что вы неправильно управляете своими экземплярами и неправильно используете что-то . Трудно сказать, потому что мы не видели ваш исходный код.
Удачи: -)