sp_utils.dart 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import 'package:shared_preferences/shared_preferences.dart';
  2. class SpUtil {
  3. static Future<SharedPreferences> sharedPreferences =
  4. SharedPreferences.getInstance();
  5. static Future<T> get<T>(String key, T defaultValue) {
  6. return sharedPreferences.then((s) {
  7. if (s.get(key) == null) {
  8. return defaultValue;
  9. } else {
  10. return s.get(key) as T;
  11. }
  12. });
  13. }
  14. static Future<bool> save<T>(String key, T value) async {
  15. return sharedPreferences.then((s) {
  16. if (value == null) {
  17. return s.remove(key);
  18. } else {
  19. if (value is int) {
  20. return s.setInt(key, value);
  21. }
  22. if (value is double) {
  23. return s.setDouble(key, value);
  24. }
  25. if (value is String) {
  26. return s.setString(key, value);
  27. }
  28. if (value is List<String>) {
  29. return s.setStringList(key, value);
  30. }
  31. if (value is bool) {
  32. return s.setBool(key, value);
  33. }
  34. }
  35. return false;
  36. });
  37. }
  38. static Future<bool> remove(String key) {
  39. return sharedPreferences.then((s) {
  40. return s.remove(key);
  41. });
  42. }
  43. static Future<bool> clear() {
  44. return sharedPreferences.then((s) {
  45. return s.clear();
  46. });
  47. }
  48. }