Using Shared Preferences
Shared Preferences in Android is a simple way to store small amounts of data as key-value pairs. This is particularly useful for storing user preferences or settings that can be easily retrieved and modified. In this section, we will explore how to effectively use Shared Preferences in your Android applications.
What are Shared Preferences?
Shared Preferences provide a straightforward way to save data in the form of key-value pairs. It is primarily used for storing primitive data types such as strings, integers, booleans, floats, and longs. This data can be retrieved even after the app is closed and reopened.
When to Use Shared Preferences
- Storing simple user settings (e.g., theme preference, notification settings) - Keeping track of user login credentials - Remembering the last visited screen or user inputsHow to Use Shared Preferences
Using Shared Preferences involves three main steps: 1. Creating or Accessing Shared Preferences 2. Writing Data to Shared Preferences 3. Reading Data from Shared Preferences
Step 1: Creating or Accessing Shared Preferences
You can create or access Shared Preferences using thegetSharedPreferences
method. It requires two parameters: the name of the preferences file and the mode (usually Context.MODE_PRIVATE
).`
kotlin
val sharedPreferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE)
`
Step 2: Writing Data to Shared Preferences
To write data, you need to get an editor object from the Shared Preferences instance. You can then use various methods to put your data and finally callapply()
or commit()
.`
kotlin
val editor = sharedPreferences.edit()
editor.putString("username", "john_doe")
editor.putInt("user_age", 30)
editor.putBoolean("isLoggedIn", true)
editor.apply() // or editor.commit()
`
Step 3: Reading Data from Shared Preferences
To read data, simply call the appropriateget
method on the Shared Preferences instance, providing a key and a default value if the key does not exist.`
kotlin
val username = sharedPreferences.getString("username", "default_user")
val userAge = sharedPreferences.getInt("user_age", 0)
val isLoggedIn = sharedPreferences.getBoolean("isLoggedIn", false)
`
Example: Storing User Preferences
In this example, we will create a simple application that saves and retrieves a user's preferred theme.1. Storing the User's Preferred Theme
`
kotlin
fun saveUserTheme(isDarkMode: Boolean) {
val sharedPreferences = getSharedPreferences("UserPrefs", Context.MODE_PRIVATE)
val editor = sharedPreferences.edit()
editor.putBoolean("isDarkMode", isDarkMode)
editor.apply()
}
`
2. Retrieving the User's Preferred Theme
`
kotlin
fun isUserInDarkMode(): Boolean {
val sharedPreferences = getSharedPreferences("UserPrefs", Context.MODE_PRIVATE)
return sharedPreferences.getBoolean("isDarkMode", false)
}
`