SharedPreferences w Androidzie
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