sp_utils.dart 1.2 KB

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