نحوه ذخیره و خواندن داده ها از تنظیمات مشترک در Flutter

عکس پروفایل نویسنده

@محتوامحیط

https://www.warmodroid.xyz

تنظیمات مشترک برای ذخیره مقدار کمی از داده ها مانند مقادیر int ، double ، bool یا رشته در حافظه محلی استفاده می شود. بگذارید برای درک بهتر شما یک مورد ساده استفاده کنم.

با استفاده از تنظیمات برگزیده مشترک ، کاربر را به سیستم وارد کنید

این یکی از بهترین موارد استفاده از تنظیمات برگزیده مشترک است. هنگامی که کاربر شناسه و رمز عبور صحیح را داد ، مقدار bool برابر با true را در حافظه محلی ذخیره می کنیم. بیایید بگوییم isUserLoggedIn = درست است.

اکنون می توانید مقدار isUserLoggedIn را هر زمان که کاربر برنامه را شروع کرد بررسی کنید و بر اساس این مقدار می توانید صفحه ورود به سیستم یا داشبورد اصلی را مستقیماً نشان دهید.

اکنون می توانید مقدار isUserLoggedIn را هر زمان که کاربر برنامه را شروع کرد بررسی کنید و بر اساس این مقدار می توانید صفحه ورود به سیستم یا داشبورد اصلی را مستقیماً نشان دهید.

آنچه را که می خواهیم بسازیم؟

برای نشان دادن استفاده از تنظیمات برگزیده مشترک در Flutter ، ما یک برنامه ساده را توسعه خواهیم داد که در آن می توانید با کمک این دو دکمه تعداد نمایش داده شده در متن را کم و زیاد کنید.

پس از تعیین مقدار دلخواه ، می توانید برنامه را خاتمه داده و دوباره راه اندازی کنید. همان مقدار را در قسمت متن پیدا خواهید کرد تنظیمات مشترک.

بیایید با قسمت کدگذاری شروع کنیم !!!

یک پروژه Flutter جدید ایجاد کنید

با استفاده از android studio یک پروژه Flutter جدید ایجاد کنید. در صورت داشتن پروژه می توانید از پروژه موجود خود نیز استفاده کنید.

پلاگین را دریافت کنید

ما از این افزونه برای اجرای تنظیمات مشترک استفاده خواهیم کرد. این بسته بندی SharedPreferences در android و UserDefaults در iOS است.

به pubspec.yaml بروید و وابستگی را مانند این جایگذاری کنید.

اکنون باید این پلاگین را در هر فایلی که می خواهید از آن استفاده کنید وارد کنید.

import 'package:shared_preferences/shared_preferences.dart';

اکنون مفهوم نوشتن و خواندن داده ها از حافظه محلی در Flutter را دارید ، بنابراین بیایید این برنامه را توسعه دهیم.

در اینجا من در مورد قسمت UI صحبت نمی کنم زیرا تمرکز اصلی ما روی منطق است. مقدار عدد صحیح در قسمت متن از تنظیمات برگزیده ذخیره شده حاصل می شود.

وقتی روی دکمه plus کلیک می کنید ، من فقط مقدار فعلی عدد صحیح را 1 افزایش می دهم و مقدار جدید حافظه را ذخیره می کنم.

RaisedButton(onPressed: () {
              setState(() {
                number++;
              });
              saveIntInLocalMemory('COUNTER_NUMBER', number);
            },
            child: Text('+'),
            )

به همین ترتیب ، هنگامی که شما دکمه منهای را فشار می دهید ، من مقدار عدد صحیح فعلی را 1 کاهش می دهم و مقدار جدید را در حافظه ذخیره می کنم.

RaisedButton(onPressed: (){
              setState(() {
                number--;
              });
              saveIntInLocalMemory('COUNTER_NUMBER', number);
            },
            child: Text('-'),
            )

کد منبع کامل

import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
 
void main() {
  runApp(MyApp());
}
 
class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(),
    );
  }
}
 
class MyHomePage extends StatefulWidget {
  MyHomePage({Key key}) : super(key: key);
  @override
  _MyHomePageState createState() => _MyHomePageState();
}
 
class _MyHomePageState extends State<MyHomePage> {
 
  var number = 0;
 
  @override
  void initState() {
    super.initState();
    getIntFromLocalMemory('COUNTER_NUMBER').then((value) =>
      number = value
    );
  }
 
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Save data locally'),
      ),
      body: Center(
        child: Row(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            RaisedButton(onPressed: (){
              setState(() {
                number--;
              });
              saveIntInLocalMemory('COUNTER_NUMBER', number);
            },
            child: Text('-'),
            ),
            Padding(
              padding: const EdgeInsets.all(21.0),
              child: Text(number.toString()),
            ),
            RaisedButton(onPressed: () {
              setState(() {
                number++;
              });
              saveIntInLocalMemory('COUNTER_NUMBER', number);
            },
            child: Text('+'),
            )
          ],
        ),
      )
    );
  }
 
  /*
  * It saves the int value to the local memory.
  * */
  Future getIntFromLocalMemory(String key) async {
    var pref = await SharedPreferences.getInstance();
    var number = pref.getInt(key) ?? 0;
    return number;
  }
 
  /*
  * It returns the saved the int value from the memory.
  * */
  Future<void> saveIntInLocalMemory(String key, int value) async {
    var pref = await SharedPreferences.getInstance();
    pref.setInt(key, value);
  }
}

نتیجه

امیدوارم این پست وبلاگ برای شما مفید باشد ، نظر خود را در جامعه به من اعلام کنید.

این مقاله در اصل در وبلاگ warodroid منتشر شده است

برچسب ها

با هکر نون همراه باشید

حساب رایگان خود را ایجاد کنید تا قفل تجربه خواندن سفارشی خود را باز کنید.

سئو PBN | خبر های جدید سئو و هک و سرور