Cloud-Lösungen der Zukunft - Testen!
Revolutionäre Cloud-Technologie, ganz ohne versteckte Kosten. Profitieren Sie von unserer Testphase und entdecken Sie umfassende Funktionen. Der Anmeldeprozess ist transparent und unkompliziert. Starten Sie jetzt Ihre Reise in die Cloud - Kostenfrei!
Optimale Datenverwaltung in Android-Apps mit SharedPreferences und Kotlin
Entdecken Sie in unserem neuesten Blogbeitrag, wie Sie die leistungsstarke Funktionalität von Android SharedPreferences mit Kotlin nutzen können. Von der grundlegenden Implementierung bis zur effizienten Datenverwaltung – erkunden Sie prägnante Tipps und Tricks, um Ihre Android-Apps zu optimieren.
Was sind Android SharedPreferences?
SharedPreferences ist seit API-Level 1 Teil der Android-API. Es ist eine Schnittstelle, die es uns ermöglicht, Daten lokal zu speichern, zu ändern oder zu löschen. Im Allgemeinen wird es verwendet, um benutzerspezifische lokale Daten wie Anmeldeformulare zwischenzuspeichern. Die Daten werden in Form von Schlüssel-Wert-Paaren gespeichert. Es können mehrere Dateien erstellt werden, um die SharedPreferences-Daten zu speichern.
Methoden von SharedPreferences
Werfen wir einen Blick auf einige wichtige Methoden von SharedPreferences.
- Die Methode
getSharedPreferences(String, int)
wird verwendet, um eine Instanz von SharedPreferences abzurufen. Hier ist String der Name der SharedPreferences-Datei und int der übergebene Kontext. - Der
SharedPreferences.Editor()
wird verwendet, um Werte in den SharedPreferences zu bearbeiten. - Wir können
commit()
oderapply()
aufrufen, um die Werte in der SharedPreferences-Datei zu speichern.commit()
speichert die Werte sofort, währendapply()
die Werte asynchron speichert.
SharedPreferences-Werte mit Kotlin setzen/abrufen
Wir können Werte in unserer SharedPreferences-Instanz wie folgt mit Kotlin setzen:
val sharedPreference = getSharedPreferences("PREFERENCE_NAME", Context.MODE_PRIVATE)
var editor = sharedPreference.edit()
editor.putString("username", "Anupam")
editor.putLong("l", 100L)
editor.commit()
Zum Abrufen eines Wertes:
sharedPreference.getString("username", "defaultName")
sharedPreference.getLong("l", 1L)
Kotlin-Code zum Löschen und Entfernen von SharedPreferences-Einträgen
Wir können auch alle Werte löschen oder einen bestimmten Wert entfernen, indem wir die Methoden clear()
und remove(String key)
aufrufen.
editor.clear()
editor.remove("username")
Hinweis: Änderungen am Editor nach dem Aufruf von commit oder apply werden nicht berücksichtigt.
Kotlin Android SharedPreferences Projektstruktur
In dieser Anwendung haben wir einen Anmeldebildschirm, der es uns ermöglicht, Formulardaten zu speichern oder zu löschen.
1. Layout-Code
Der Code für die activity_main.xml
Layout-Datei:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/inUserId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:hint="User ID"
android:inputType="number" />
<EditText
android:id="@+id/inPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/inUserId"
android:hint="Password"
android:inputType="textPassword" />
<Button
android:id="@+id/btnSave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/inPassword"
android:text="SAVE USER DATA" />
<Button
android:id="@+id/btnClear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/btnSave"
android:text="CLEAR USER DATA" />
<Button
android:id="@+id/btnShow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/inPassword"
android:text="SHOW" />
<Button
android:id="@+id/btnShowDefault"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/btnSave"
android:text="Show Default" />
</RelativeLayout>
2. MainActivity Kotlin Code
Der Code für die MainActivity.kt
Kotlin-Klasse:
package com.journaldev.androidlysharedpreferences
import android.content.Context
import android.content.SharedPreferences
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.preference.PreferenceManager
import android.view.View
import com.journaldev.androidlysharedpreferences.PreferenceHelper.defaultPreference
import com.journaldev.androidlysharedpreferences.PreferenceHelper.password
import com.journaldev.androidlysharedpreferences.PreferenceHelper.userId
import com.journaldev.androidlysharedpreferences.PreferenceHelper.clearValues
import com.journaldev.androidlysharedpreferences.PreferenceHelper.customPreference
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity(), View.OnClickListener {
val CUSTOM_PREF_NAME = "User_data"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
btnSave.setOnClickListener(this)
btnClear.setOnClickListener(this)
btnShow.setOnClickListener(this)
btnShowDefault.setOnClickListener(this)
}
override fun onClick(v: View?) {
val prefs = customPreference(this, CUSTOM_PREF_NAME)
when (v?.id) {
R.id.btnSave -> {
prefs.password = inPassword.text.toString()
prefs.userId = inUserId.text.toString().toInt()
}
R.id.btnClear -> {
prefs.clearValues
}
R.id.btnShow -> {
inUserId.setText(prefs.userId.toString())
inPassword.setText(prefs.password)
}
R.id.btnShowDefault -> {
val defaultPrefs = defaultPreference(this)
inUserId.setText(defaultPrefs.userId.toString())
inPassword.setText(defaultPrefs.password)
}
}
}
}
object PreferenceHelper {
val USER_ID = "USER_ID"
val USER_PASSWORD = "PASSWORD"
fun defaultPreference(context: Context): SharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
fun customPreference(context: Context, name: String): SharedPreferences = context.getSharedPreferences(name, Context.MODE_PRIVATE)
inline fun SharedPreferences.editMe(operation: (SharedPreferences.Editor) -> Unit) {
val editMe = edit()
operation(editMe)
editMe.apply()
}
var SharedPreferences.userId
get() = getInt(USER_ID, 0)
set(value) {
editMe {
it.putInt(USER_ID, value)
}
}
var SharedPreferences.password
get() = getString(USER_PASSWORD, "")
set(value) {
editMe {
it.putString(USER_PASSWORD, value)
}
}
var SharedPreferences.clearValues
get() = { }
set(value) {
editMe {
it.clear()
}
}
}
Fazit
Kotlin hat das Management von SharedPreferences in Android-Anwendungen vereinfacht und den Code lesbarer gemacht. Durch die Verwendung von Kotlin-Eigenschaften und höherwertigen Funktionen können wir Daten einfach speichern, abrufen und bearbeiten. Die Integration von SharedPreferences in eine Kotlin-basierte Android-Anwendung bietet eine elegante und effiziente Möglichkeit, Benutzerdaten lokal zu verwalten. Mit Kotlin wird die Entwicklung von Android-Apps nicht nur effizienter, sondern auch angenehmer.
Kostenlosen Account erstellen
Registrieren Sie sich jetzt und erhalten Sie exklusiven Zugang zu weiterführenden Ressourcen, individuellem Support und einer Community von Experten.
Aktuelle Beiträge
activity_main.xmlAndroid AnmeldeformularAndroid APIAndroid EntwicklungAndroid Kotlin extensionsAndroid SharedPreferencesAndroid SharedPreferences tutorialapplyBenutzerdaten zwischenspeicherncommitDatenabrufDatenhandlingDatenpersistenzDatenspeicherungDatenverwaltunggetSharedPreferencesKotlinKotlin Android-EntwicklungKotlin EigenschaftenKotlin höherwertige Funktionenlokale Datenverwaltunglokale SpeicherungMainActivity.ktSchlüssel-Wert-PaarSharedPreferences in Android appsSharedPreferences MethodenSharedPreferences ProjektstrukturSharedPreferences.Editor
Starten Sie Ihre kostenlose Testphase und verbessern Sie Ihre Android-Entwicklung mit cloudbasierten Lösungen
Optimieren Sie Ihre Android-Apps durch effiziente Datenverwaltung mit Kotlin und SharedPreferences. Als führender Cloud-Anbieter bieten wir Ihnen nahtlose Integration, skalierbaren Speicher und herausragende Leistung. Melden Sie sich jetzt für eine kostenlose Testphase an und erleben Sie die Vorteile unserer cloudbasierten Lösungen!