フラッターモバイルプロバイダの戦闘 - (50)永続_shared_preferences

アプリがオフになったとき。そして時間に、ショッピングカートの内容がまだ存在しています。

これはSQLiteデータベースを操作するために提供sqflite

フラッターは3つの永続化ツールを提供しています

今日で学ぶために

shared_preferences

ある持続性もあります:ストリームの形式でファイルを、読むことや、いくつかの遅いです

安装shared_preferences

住所プラグ:

https://github.com/flutter/plugins/tree/master/packages/shared_preferences

先に日本VPNノードの良いスタートが比較的高速でダウンロード

shared_preferences:^ 0.5.1

CRUDの持続性の一部に乗るカートを取ります

cart_page.dart

shared_preferencesを導入すると、その後stfull動的なウィジェットを作成します

新しいメソッドsetStringList、もちろん、など他の方法setBoolがあります

完成増加させる方法

SETSTATE testlistという割り当てを使用する変数に値がある場合は、インターフェイスが変更されますので、内側から値を取得するために永続方法を示します。

1がすべて空である、方法を削除し、空のキー値に基づいています

方法を構築書きます

メソッドのショーを呼び出す前に、ビルドの上部には、

以下は、コンテナとListViewコントロールのレイアウトだったと2つのボタンを置きます

営業結果は:

いくつかのレコードを追加するには、[追加]ボタンをクリックします

ターミナルに入力して、Qの外にあります

実行再実行を舞います。元のデータがまだあります

最終的なコード

cart_page.dart

インポート'パッケージ:フラッター/ material.dart'; 
インポート'パッケージ:/ shared_preferences.dart shared_preferences'; 

クラスCartPageは{StatefulWidgetを拡張
  @Override 
  _CartPageState createState()=> _CartPageState(); 
} 

クラス_CartPageStateが延びる状態<CartPage> { 
  リストの<string> testlistという= []; 
  @Override 
  ウィジェット構築(BuildContextコンテキスト){ 
    _show()。
    コンテナ(返す
      カラム(:子供
        子供:<ウィジェット> [ 
          コンテナ(
            高さ:500.0、
            子供:ListView.builder(
              ITEMCOUNT個:testList.length、 
              itemBuilder:(文脈、インデックス){
                (ListTileを返すに
                  タイトル:テキスト(testlistという[インデックス])、
                ); 
              }、 
            )、
          )、 
          RaisedButton(
            onPressed:(){_()を追加;} 
            子:テキスト( '增加')、 
          )、
           RaisedButton(
            onPressed:(){_クリア();}、
            子供:テキスト( '清空' )
        ] 
    ); 
  } 
  //增加方法
  ボイド_ADD()非同期{ 
    SharedPreferencesの環境設定の=は(SharedPreferences.getInstanceを待ちます)。
    文字列のTEMP = 'wjw是最棒哒!!!!!'; 
    _公演();
    testList.add(TEMP)。
    prefs.setStringList( 'testInfo'、testlistという)。
  } 

   ボイド_show()非同期{ 
     SharedPreferencesの環境設定=はSharedPreferences.getInstance()を待ちます。
     IF(!prefs.getStringList( 'testInfo')= NULL){ 
       SETSTATE((){ 
        testlistという= prefs.getStringList( 'testInfo'); 
       }); 
     } 
   } 
   //删除

  ボイド_clear()非同期{ 
    SharedPreferencesの環境設定の=は(SharedPreferences.getInstanceを待ちます)。
     //prefs.clear();//全部删除
    prefs.remove( 'testInfo'); //根据キー值清空
    SETSTATE((){ 
     testlistという= []; 
    }); 
   } 

}

おすすめ

転載: www.cnblogs.com/crazycode2/p/11524488.html