getData<T> static method
Implementation
static Future<T> getData<T>(String key) async {
final prefs = await SharedPreferences.getInstance();
if (T == int) {
// Get an integer value to 'counter' key.
T value = ((prefs.getInt(key)) ?? 0) as T;
return value;
} else if (T == bool) {
// Get an boolean value to 'repeat' key.
T value = ((prefs.getBool(key)) ?? false) as T;
return value;
} else if (T == double) {
// Get an double value to 'decimal' key.
T value = ((prefs.getDouble(key)) ?? 0.0) as T;
return value;
} else if (T == List<String>) {
// Get an list of strings to 'items' key.
T value = ((prefs.getStringList(key)) ?? <String>[]) as T;
return value;
} else if (T == Map<String, dynamic>) {
String jsonString = (prefs.getString(key)) ?? "{}";
T value = (jsonDecode(jsonString) as Map<String, dynamic>) as T;
return value;
} else if (T == List<dynamic>) {
String jsonString = (prefs.getString(key)) ?? "[]";
final List<dynamic> jsonList = jsonDecode(jsonString);
return jsonList.map((item) => item as Map<String, dynamic>).toList() as T;
} else {
//default String
// Get an double value to 'decimal' key.
T value = ((prefs.getString(key)) ?? "") as T;
return value;
}
}