アプリがオフになったとき。そして時間に、ショッピングカートの内容がまだ存在しています。
これは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という= []; }); } }
。