اذهب إلى المحتوى

السؤال

نشر (معدل)

السلام عليكم ورحمة الله وبركاته

تحيه طيبه للجميع.

لدي استفسار لو تكرمتو 

كيف نستخدم shared Preference مع نمط البيانات int في flutter

الشيفرة البرمجية خاصتي:

import 'package:shared_preferences/shared_preferences.dart';

class MyPreferences {

  static const PASSWORD = "passd";
  static const PHONENUMBER = "phone";

  static final MyPreferences instance = MyPreferences._internal();

  static SharedPreferences _sharedPreferences;

  String passd = "";
  String phone = "";

  MyPreferences._internal() {}

  factory MyPreferences() => instance;

  Future<SharedPreferences> get preferences async {
    if (_sharedPreferences != null) {
      return _sharedPreferences;
    } else {
      _sharedPreferences = await SharedPreferences.getInstance();

      passd = _sharedPreferences.getString(PASSWORD);
      phone = _sharedPreferences.getString(PHONENUMBER);
   
      return _sharedPreferences;
    }
  }

  Future<bool> commit() async {


    await _sharedPreferences.setString(PASSWORD, passd);
    await _sharedPreferences.setString(PHONENUMBER, phone);
 
 
  }

  Future<MyPreferences> init() async {
    _sharedPreferences = await preferences;
    return this;
  }

  
}

 

تم التعديل في بواسطة Wael Aljamal
تعديل السؤال لما كان قبل أن يقوم صاحب السؤال بتغييره بطريقة مختلفة تماما عما طرحه

Recommended Posts

  • 1
نشر

مرحبا مروان،

في إطار عمل Flutter يوجد دوال خاصة للتعامل مع نمط البيانات int عند استخدام sharedPreference

وهي تشبه التعامل مع string التي تستخدمها أنت ..

مثال بسيط:

// read
final myInt = prefs.getInt('my_int_key') ?? 0;

// write
prefs.setInt('my_int_key', 42);

استخدم الدوال getInt & setInt وهي مقدمة جاهزة ولا تحتاج للبرمجة.

رابط شرح المكتبة من هنا

طريقة التضمين:

تضمين أحدث إصدار:

dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^0.5.12+4

وتنفيذ التعليمة التالية:

$ flutter pub get

وتضمين المكتبة كما فعلت أنت بالضبط:

import 'package:shared_preferences/shared_preferences.dart';

مثال للقراءة و الكتابة معا (زيادة قيمة رقمية بمقدار 1)

_incrementCounter() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  int counter = (prefs.getInt('counter') ?? 0) + 1;
  print('Pressed $counter times.');
  await prefs.setInt('counter', counter);
}

بالنسبة لمثالك:

import 'package:shared_preferences/shared_preferences.dart';

class MyPreferences {

  static const PASSWORD = "passd";
  static const PHONENUMBER = "phone";
  static const AGE = "AGE";

  static final MyPreferences instance = MyPreferences._internal();

  static SharedPreferences _sharedPreferences;

  String passd = "";
  String phone = "";
  String age   = 0;

  MyPreferences._internal() {}

  factory MyPreferences() => instance;

  Future<SharedPreferences> get preferences async {
    if (_sharedPreferences != null) {
      return _sharedPreferences;
    } else {
      _sharedPreferences = await SharedPreferences.getInstance();

      passd = _sharedPreferences.getString(PASSWORD);
      phone = _sharedPreferences.getString(PHONENUMBER);
      age   = _sharedPreferences.getString(AGE);
   
      return _sharedPreferences;
    }
  }

  Future<bool> commit() async {


    await _sharedPreferences.setString(PASSWORD, passd);
    await _sharedPreferences.setString(PHONENUMBER, phone);
    await _sharedPreferences.setString(AGE, age);
 
 
  }

  Future<MyPreferences> init() async {
    _sharedPreferences = await preferences;
    return this;
  }

  
}

قمت بإضاقة العمر كـ AGE للمفتاح و age للمتحول الذي يحفظ القيمة.

بالتوفيق

  • 0
نشر
بتاريخ 3 ساعات قال Wael Aljamal:

مرحبا مروان،

في إطار عمل Flutter يوجد دوال خاصة للتعامل مع نمط البيانات int عند استخدام sharedPreference

وهي تشبه التعامل مع string التي تستخدمها أنت ..

مثال بسيط:


// read
final myInt = prefs.getInt('my_int_key') ?? 0;

// write
prefs.setInt('my_int_key', 42);

استخدم الدوال getInt & setInt وهي مقدمة جاهزة ولا تحتاج للبرمجة.

رابط شرح المكتبة من هنا

طريقة التضمين:

تضمين أحدث إصدار:


dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^0.5.12+4

وتنفيذ التعليمة التالية:


$ flutter pub get

وتضمين المكتبة كما فعلت أنت بالضبط:


import 'package:shared_preferences/shared_preferences.dart';

مثال للقراءة و الكتابة معا (زيادة قيمة رقمية بمقدار 1)


_incrementCounter() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  int counter = (prefs.getInt('counter') ?? 0) + 1;
  print('Pressed $counter times.');
  await prefs.setInt('counter', counter);
}

بالنسبة لمثالك:


import 'package:shared_preferences/shared_preferences.dart';

class MyPreferences {

  static const PASSWORD = "passd";
  static const PHONENUMBER = "phone";
  static const AGE = "AGE";

  static final MyPreferences instance = MyPreferences._internal();

  static SharedPreferences _sharedPreferences;

  String passd = "";
  String phone = "";
  String age   = 0;

  MyPreferences._internal() {}

  factory MyPreferences() => instance;

  Future<SharedPreferences> get preferences async {
    if (_sharedPreferences != null) {
      return _sharedPreferences;
    } else {
      _sharedPreferences = await SharedPreferences.getInstance();

      passd = _sharedPreferences.getString(PASSWORD);
      phone = _sharedPreferences.getString(PHONENUMBER);
      age   = _sharedPreferences.getString(AGE);
   
      return _sharedPreferences;
    }
  }

  Future<bool> commit() async {


    await _sharedPreferences.setString(PASSWORD, passd);
    await _sharedPreferences.setString(PHONENUMBER, phone);
    await _sharedPreferences.setString(AGE, age);
 
 
  }

  Future<MyPreferences> init() async {
    _sharedPreferences = await preferences;
    return this;
  }

  
}

قمت بإضاقة العمر كـ AGE للمفتاح و age للمتحول الذي يحفظ القيمة.

بالتوفيق

اهلا بك عزيزي

ربي يعطيك الف صحه وعافيه يا غالي ويزيدك من واسع فضله 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...