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 اقتباس
1 بلال زيادة نشر 21 أبريل 2021 أرسل تقرير نشر 21 أبريل 2021 بتاريخ On 21/4/2021 at 19:14 قال مروان مروان3: اهلا اخي احاول اضافتهم الى الكود الذي لدي حتى تكون بنفس طريقة العمل الطريقة الذي ذكرتها انت في البداية هذا تكون في صفحة العمل ولكني ارغب بجلعها مثل string الذي في الصفحه الان اي في نفس الصفحه ولكن من نوع bool حتى استخدمها من اي مكان وتكون كل البيانات في صفحة واحده أظهر المزيد يمكنك تجريب الطريقة الثانية ومن ثم إخباري بالنتيجة. 1 اقتباس
1 بلال زيادة نشر 21 أبريل 2021 أرسل تقرير نشر 21 أبريل 2021 بتاريخ On 21/4/2021 at 19:20 قال مروان مروان3: قمت بتجربه بشكل التالي ولم ينجح الامر أظهر المزيد تمام, سأحاول تعديل الكود ومن ثم إخبارك بالنتيجة. 1 اقتباس
0 Flutter Dev نشر 21 أبريل 2021 الكاتب أرسل تقرير نشر 21 أبريل 2021 بتاريخ On 21/4/2021 at 19:10 قال بلال زيادة: ولكن هناك دوال في 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 اقتباس
0 Flutter Dev نشر 21 أبريل 2021 الكاتب أرسل تقرير نشر 21 أبريل 2021 بتاريخ On 21/4/2021 at 19:15 قال بلال زيادة: يمكنك تجريب الطريقة الثانية ومن ثم إخباري بالنتيجة. أظهر المزيد قمت بتجربه بشكل التالي ولم ينجح الامر 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; } } اقتباس
0 Flutter Dev نشر 21 أبريل 2021 الكاتب أرسل تقرير نشر 21 أبريل 2021 بتاريخ On 21/4/2021 at 19:28 قال بلال زيادة: تمام, سأحاول تعديل الكود ومن ثم إخبارك بالنتيجة. أظهر المزيد ربي يعطيك الف عافيه اقتباس
السؤال
Flutter Dev
لدي كلاس shared_preferences منفصل بحيث انني استطيع استدعاه من صفحات مختلفه وتخزين فيه البيانات من حيث يتطلب ذلك كالتالي:
احتاج الى اضافة بيانات مختلفه فيه ليست من نوع Stirng
احتاج الى اضافة setBool و getBool
بحيث انني ارغب بعمل تحقق من المستخدم اذا كان عامل تسجيل دخول او لا
كيف يمكن عمل ذلك في كلاس shared_preferences
مع العلم انني ساقوم بتخزين البيانات من صفحه مختلفه
6 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.