Flutter Dev نشر 21 أبريل 2021 أرسل تقرير نشر 21 أبريل 2021 لدي كلاس shared_preferences منفصل بحيث انني استطيع استدعاه من صفحات مختلفه وتخزين فيه البيانات من حيث يتطلب ذلك كالتالي: import 'package:shared_preferences/shared_preferences.dart'; class MyPreferences { static const ID = "id"; static const STATE = "state"; static final MyPreferences instance = MyPreferences._internal(); static SharedPreferences _sharedPreferences; String id = ""; String state = ""; MyPreferences._internal() {} factory MyPreferences() => instance; Future<SharedPreferences> get preferences async { if (_sharedPreferences != null) { return _sharedPreferences; } else { _sharedPreferences = await SharedPreferences.getInstance(); state = _sharedPreferences.getString(STATE); id = _sharedPreferences.getString(ID); return _sharedPreferences; } } Future<bool> commit() async { await _sharedPreferences.setString(STATE, state); await _sharedPreferences.setString(ID, id); } Future<MyPreferences> init() async { _sharedPreferences = await preferences; return this; } } احتاج الى اضافة بيانات مختلفه فيه ليست من نوع Stirng احتاج الى اضافة setBool و getBool بحيث انني ارغب بعمل تحقق من المستخدم اذا كان عامل تسجيل دخول او لا كيف يمكن عمل ذلك في كلاس shared_preferences مع العلم انني ساقوم بتخزين البيانات من صفحه مختلفه اقتباس
1 بلال زيادة نشر 21 أبريل 2021 أرسل تقرير نشر 21 أبريل 2021 ولكن هناك دوال في shared_preferences لتتعامل مع بيانات من نوع bool , مثل setBool , getBool لماذا لا تستخدمها مباشرة ؟ يمكنك استخدام setBool بهذا الشكل _saveOptions() async { SharedPreferences prefs = await SharedPreferences.getInstance(); await prefs.setBool('option', true); } ويمكنك استخدام getBool بهذا الشكل SharedPreferences prefs = await SharedPreferences.getInstance(); bool boolValue = prefs.getBool('option'); أم هل تقصد تريد إضافة بيانات بهذا الشكل ؟ final String _kNotificationsPrefs = "allowNotifications"; final String _kSortingOrderPrefs = "sortOrder"; Future<bool> getAllowsNotifications() async { final SharedPreferences prefs = await SharedPreferences.getInstance(); return prefs.getBool(_kNotificationsPrefs) ?? false; } Future<bool> setAllowsNotifications(bool value) async { final SharedPreferences prefs = await SharedPreferences.getInstance(); return prefs.setBool(_kNotificationsPrefs, value); } 1 اقتباس
0 Flutter Dev نشر 21 أبريل 2021 الكاتب أرسل تقرير نشر 21 أبريل 2021 بتاريخ 3 دقائق مضت قال بلال زيادة: ولكن هناك دوال في shared_preferences لتتعامل مع بيانات من نوع bool , مثل setBool , getBool لماذا لا تستخدمها مباشرة ؟ يمكنك استخدام setBool بهذا الشكل _saveOptions() async { SharedPreferences prefs = await SharedPreferences.getInstance(); await prefs.setBool('option', true); } ويمكنك استخدام getBool بهذا الشكل SharedPreferences prefs = await SharedPreferences.getInstance(); bool boolValue = prefs.getBool('option'); أم هل تقصد تريد إضافة بيانات بهذا الشكل ؟ final String _kNotificationsPrefs = "allowNotifications"; final String _kSortingOrderPrefs = "sortOrder"; Future<bool> getAllowsNotifications() async { final SharedPreferences prefs = await SharedPreferences.getInstance(); return prefs.getBool(_kNotificationsPrefs) ?? false; } Future<bool> setAllowsNotifications(bool value) async { final SharedPreferences prefs = await SharedPreferences.getInstance(); return prefs.setBool(_kNotificationsPrefs, value); } اهلا اخي احاول اضافتهم الى الكود الذي لدي حتى تكون بنفس طريقة العمل الطريقة الذي ذكرتها انت في البداية هذا تكون في صفحة العمل ولكني ارغب بجلعها مثل string الذي في الصفحه الان اي في نفس الصفحه ولكن من نوع bool حتى استخدمها من اي مكان وتكون كل البيانات في صفحة واحده @بلال زيادةبمعنى اضافتها في هذا الكلاس {}class MyPreferences اقتباس
1 بلال زيادة نشر 21 أبريل 2021 أرسل تقرير نشر 21 أبريل 2021 بتاريخ الآن قال مروان مروان3: اهلا اخي احاول اضافتهم الى الكود الذي لدي حتى تكون بنفس طريقة العمل الطريقة الذي ذكرتها انت في البداية هذا تكون في صفحة العمل ولكني ارغب بجلعها مثل string الذي في الصفحه الان اي في نفس الصفحه ولكن من نوع bool حتى استخدمها من اي مكان وتكون كل البيانات في صفحة واحده يمكنك تجريب الطريقة الثانية ومن ثم إخباري بالنتيجة. 1 اقتباس
0 Flutter Dev نشر 21 أبريل 2021 الكاتب أرسل تقرير نشر 21 أبريل 2021 بتاريخ 4 دقائق مضت قال بلال زيادة: يمكنك تجريب الطريقة الثانية ومن ثم إخباري بالنتيجة. قمت بتجربه بشكل التالي ولم ينجح الامر import 'package:shared_preferences/shared_preferences.dart'; class MyPreferences { static const ID = "id"; static const STATE = "state"; final String _kNotificationsPrefs = "allowNotifications"; final String _kSortingOrderPrefs = "sortOrder"; static final MyPreferences instance = MyPreferences._internal(); static SharedPreferences _sharedPreferences; String id = ""; String state = ""; bool value; MyPreferences._internal() {} factory MyPreferences() => instance; Future<SharedPreferences> get preferences async { if (_sharedPreferences != null) { return _sharedPreferences; } else { _sharedPreferences = await SharedPreferences.getInstance(); state = _sharedPreferences.getString(STATE); id = _sharedPreferences.getString(ID); _sharedPreferences.getBool(_kNotificationsPrefs) ?? false; return _sharedPreferences; } } Future<bool> commit() async { await _sharedPreferences.setString(STATE, state); await _sharedPreferences.setString(ID, id); await _sharedPreferences.setBool(_kNotificationsPrefs, value); } Future<MyPreferences> init() async { _sharedPreferences = await preferences; return this; } } اقتباس
1 بلال زيادة نشر 21 أبريل 2021 أرسل تقرير نشر 21 أبريل 2021 بتاريخ 7 دقائق مضت قال مروان مروان3: قمت بتجربه بشكل التالي ولم ينجح الامر تمام, سأحاول تعديل الكود ومن ثم إخبارك بالنتيجة. 1 اقتباس
0 Flutter Dev نشر 21 أبريل 2021 الكاتب أرسل تقرير نشر 21 أبريل 2021 بتاريخ الآن قال بلال زيادة: تمام, سأحاول تعديل الكود ومن ثم إخبارك بالنتيجة. ربي يعطيك الف عافيه اقتباس
السؤال
Flutter Dev
لدي كلاس shared_preferences منفصل بحيث انني استطيع استدعاه من صفحات مختلفه وتخزين فيه البيانات من حيث يتطلب ذلك كالتالي:
احتاج الى اضافة بيانات مختلفه فيه ليست من نوع Stirng
احتاج الى اضافة setBool و getBool
بحيث انني ارغب بعمل تحقق من المستخدم اذا كان عامل تسجيل دخول او لا
كيف يمكن عمل ذلك في كلاس shared_preferences
مع العلم انني ساقوم بتخزين البيانات من صفحه مختلفه
6 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.