SharedPreferences w Androidzie

May 05 2023
Dzisiaj poznamy najprostszy sposób przechowywania danych za pomocą przykładowej aplikacji. Ogólnie rzecz biorąc, kiedy mówimy o przechowywaniu danych, najpierw myślimy o SQL, MongoDB itp.

Dzisiaj poznamy najprostszy sposób przechowywania danych za pomocą przykładowej aplikacji. Ogólnie rzecz biorąc, kiedy mówimy o przechowywaniu danych, najpierw myślimy o SQL, MongoDB itp. Ale wkrótce przekonamy się, że nie potrzebujemy ich do prostych danych .

Kiedy mówimy o prostych danych, zwykle mamy na myśli takie dane, jak wiek użytkownika , kraj, z którego pochodzi, oraz preferowane ustawienia . Dane te nie zostaną utracone, nawet jeśli użytkownik zamknie aplikację.

Co to jest SharedPreferences?

Możemy przechowywać proste dane bez potrzeby niczego dodatkowego. Jest to struktura działająca z parą klucz-wartość . Rodzaje danych, które możemy przechowywać, są ograniczone do; Int, Boolean, Float, Long i String.

Użyjmy teraz tej struktury w aplikacji, w której pobieramy wiek użytkownika i zapisujemy go. (Upuszczam link do GitHub tutaj .)

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)
    }

to :

Używamy go, aby pokazać aktywność, w której się znajdujemy.

com.aliduman.savemyage:

W tej części prosi nas tylko o imię. Generalnie w tej części umieszczamy nazwę pakietu .

Kontekst.MODE_PRIVATE:

Tryb określa, kto może uzyskać dostęp do preferencji naszej aplikacji. Prywatny to tryb domyślny i można uzyskać do niego dostęp tylko z tej aplikacji.

Użyjmy SharedPreferences po dokonaniu definicji i ustawień. Naszym celem jest wprowadzenie i zapisanie wieku użytkownika, następnie zapamiętanie tego wieku i pokazanie go użytkownikowi po zamknięciu i otwarciu aplikacji.

var currentAge = preferences.getInt("age",-1)

getInt():

Ta metoda zwraca podaną wartość. Jeśli nie zostanie utworzony wcześniej, zostanie utworzony.

wiek:

To jest klucz do wartości, którą chcemy zachować.

-1:

Tego parametru używamy do przypisania wartości domyślnie, jeśli nie zostaną wprowadzone żadne dane.

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.
          }
   }

edytować()

Używamy go do wprowadzania zmian lub przypisań w naszej wartości.

putInt()

Używamy go do umieszczania danych w tym, co przechowujemy.

stosować()

ta metoda jest wymagana do wdrożenia wszystkich tych zmian.

Użytkownik wpisuje liczbę 23 i naciska przycisk zapisu.↑

Szczęśliwe zakończenie, gdy użytkownik ponownie wejdzie do aplikacji, możemy pokazać mu wiek za pomocą naszego algorytmu i SharedPreferences.↑

!OSTRZEŻENIE!

Pominąłem kilka ważnych kroków, takich jak sprawdzanie zerowania, aby skupić się na SharedPreferences. Nie zapomnij sprawdzić, czy dane wprowadzone przez użytkownika są puste, czy nie. Czysty kod, niezawodny kod