Общие настройки в Android

Сегодня мы увидим самый простой способ хранения данных с помощью примера приложения. Как правило, когда мы говорим о хранении данных, мы сначала думаем о SQL, MongoDB и т. д. Но вскоре мы увидим, что они нам не нужны для простых данных .
Говоря о простых данных, мы обычно сохраняем такие данные, как возраст пользователя , из какой он страны и предпочитаемые им настройки . Эти данные не теряются, даже если пользователь закрывает приложение.
Что такое общие настройки?
Мы можем хранить простые данные, не нуждаясь ни в чем дополнительном. Это структура, которая работает с парой ключ-значение . Типы данных, которые мы можем хранить, ограничены; Int, Boolean, Float, Long и String.
Давайте теперь используем эту структуру в приложении, в котором мы получаем возраст пользователя и сохраняем его. (Я бросаю сюда ссылку на GitHub .)
class MainActivity : AppCompatActivity() {
private lateinit var preferences : SharedPreferences
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
preferences = this.getSharedPreferences("com.aliduman.savemyage"
, Context.MODE_PRIVATE)
}
это :
Мы используем его, чтобы показать активность, в которой мы находимся.
com.aliduman.savemyage:
В этой части он запрашивает у нас только имя. Как правило, мы помещаем имя пакета в эту часть.
Контекст.MODE_PRIVATE:
Режим определяет, кто может получить доступ к настройкам нашего приложения. Частный — это режим по умолчанию , доступ к нему возможен только из этого приложения.

Давайте воспользуемся SharedPreferences после внесения определений и настроек. Наша цель — ввести и сохранить возраст пользователя, затем сохранить этот возраст и показать его пользователю после закрытия и открытия приложения.
var currentAge = preferences.getInt("age",-1)
получитьInt():
Этот метод возвращает заданное значение. Если он не был создан раньше, он будет.
возраст:
Это ключ к ценности, которую мы хотим сохранить.
-1:
Этот параметр мы используем для присвоения значения по умолчанию, если данные не введены.
if (currentAge != -1) { //if user saved age before..
age_text.hint = currentAge.toString()
} else {//if first time user saved age
save_button.setOnClickListener {
var ageInput = Integer.valueOf(age_text.text.toString())
preferences.edit().putInt("age", ageInput).apply() //We save it to SharedPreferences.
}
}
редактировать()
Мы используем его для внесения изменений или присвоений в нашу ценность.
положитьInt()
Мы используем его, чтобы поместить данные в то, что мы храним.
применять()
этот метод необходим для реализации всех этих изменений.

Пользователь вводит число 23 и нажимает кнопку сохранения.↑

Счастливый конец, когда пользователь повторно входит в приложение, мы можем показать его/его возраст с помощью нашего алгоритма и SharedPreferences.↑
!ПРЕДУПРЕЖДЕНИЕ!
Я пропустил некоторые важные шаги, такие как проверка нуля, чтобы сосредоточиться на SharedPreferences. Не забудьте проверить, являются ли введенные пользователем данные нулевыми или нет. Чистый код, надежный код