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

May 05 2023
Сегодня мы увидим самый простой способ хранения данных с помощью примера приложения. Как правило, когда мы говорим о хранении данных, мы в первую очередь думаем о SQL, MongoDB и т. д.

Сегодня мы увидим самый простой способ хранения данных с помощью примера приложения. Как правило, когда мы говорим о хранении данных, мы сначала думаем о 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. Не забудьте проверить, являются ли введенные пользователем данные нулевыми или нет. Чистый код, надежный код