setData<T> static method
void
setData<
T>( - String key,
- T? value
)
Implementation
static void setData<T>(String key, T? value) async {
final SharedPreferences prefs = await SharedPreferences.getInstance();
if (T == int) {
// Save an integer value to 'counter' key.
await prefs.setInt(key, value == null ? 0 : (value as int));
} else if (T == bool) {
// Save an boolean value to 'repeat' key.
await prefs.setBool(key, value == null ? false : (value as bool));
} else if (T == double) {
// Save an double value to 'decimal' key.
await prefs.setDouble(key, value == null ? 0.0 : (value as double));
} else if (T == List<String>) {
// Save an list of strings to 'items' key.
await prefs.setStringList(
key, value == null ? [] : (value as List<String>));
} else if (T == Map<String, dynamic>) {
if (value == null) {
await prefs.setString(key, "{}");
} else {
final jsonString = jsonEncode(value); // Convert map to JSON string
await prefs.setString(
key, jsonString); // Save JSON string to SharedPreferences
}
} else if (T == List<dynamic>) {
if (value == null) {
await prefs.setString(key, "[]");
} else {
final jsonString = jsonEncode(value); // Convert map to JSON string
await prefs.setString(
key, jsonString); // Save JSON string to SharedPreferences
}
} else {
//default String
// Save an double value to 'decimal' key.
await prefs.setString(key, value == null ? '' : (value as String));
}
}