mirror of
https://github.com/nisrulz/flutter-examples.git
synced 2025-05-17 21:15:54 +08:00
added: implemented shared_preferences plugin in persist_key_value example
This commit is contained in:
167
persist_key_value/.idea/workspace.xml
generated
167
persist_key_value/.idea/workspace.xml
generated
@ -2,13 +2,9 @@
|
||||
<project version="4">
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="c53a8206-78cc-43cb-ac2b-1cf6a52e2018" name="Default Changelist" comment="">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/libraries/Dart_Packages.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Dart_Packages.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/libraries/Flutter_Plugins.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Flutter_Plugins.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/ios/Flutter/Debug.xcconfig" beforeDir="false" afterPath="$PROJECT_DIR$/ios/Flutter/Debug.xcconfig" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/ios/Flutter/Release.xcconfig" beforeDir="false" afterPath="$PROJECT_DIR$/ios/Flutter/Release.xcconfig" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/lib/MyCounter.dart" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/lib/main.dart" beforeDir="false" afterPath="$PROJECT_DIR$/lib/main.dart" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/pubspec.yaml" beforeDir="false" afterPath="$PROJECT_DIR$/pubspec.yaml" afterDir="false" />
|
||||
</list>
|
||||
<ignored path="$PROJECT_DIR$/out/" />
|
||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||
@ -27,8 +23,8 @@
|
||||
</usages-collector>
|
||||
<usages-collector id="statistics.file.extensions.open">
|
||||
<counts>
|
||||
<entry key="dart" value="2" />
|
||||
<entry key="gradle" value="1" />
|
||||
<entry key="dart" value="4" />
|
||||
<entry key="gradle" value="3" />
|
||||
<entry key="iml" value="1" />
|
||||
<entry key="lock" value="1" />
|
||||
<entry key="packages" value="1" />
|
||||
@ -37,8 +33,8 @@
|
||||
</usages-collector>
|
||||
<usages-collector id="statistics.file.types.open">
|
||||
<counts>
|
||||
<entry key="Dart" value="2" />
|
||||
<entry key="Groovy" value="1" />
|
||||
<entry key="Dart" value="4" />
|
||||
<entry key="Groovy" value="3" />
|
||||
<entry key="IDEA_MODULE" value="1" />
|
||||
<entry key="PLAIN_TEXT" value="2" />
|
||||
<entry key="YAML" value="1" />
|
||||
@ -46,13 +42,15 @@
|
||||
</usages-collector>
|
||||
<usages-collector id="statistics.file.extensions.edit">
|
||||
<counts>
|
||||
<entry key="dart" value="415" />
|
||||
<entry key="dart" value="1347" />
|
||||
<entry key="gradle" value="4" />
|
||||
<entry key="yaml" value="10" />
|
||||
</counts>
|
||||
</usages-collector>
|
||||
<usages-collector id="statistics.file.types.edit">
|
||||
<counts>
|
||||
<entry key="Dart" value="415" />
|
||||
<entry key="Dart" value="1347" />
|
||||
<entry key="Groovy" value="4" />
|
||||
<entry key="YAML" value="10" />
|
||||
</counts>
|
||||
</usages-collector>
|
||||
@ -63,8 +61,8 @@
|
||||
<file pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/lib/main.dart">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="300">
|
||||
<caret line="20" column="23" lean-forward="true" selection-start-line="20" selection-start-column="23" selection-end-line="20" selection-end-column="23" />
|
||||
<state relative-caret-position="323">
|
||||
<caret line="37" column="41" lean-forward="true" selection-start-line="37" selection-start-column="41" selection-end-line="37" selection-end-column="41" />
|
||||
<folding>
|
||||
<element signature="e#0#39#0" expanded="true" />
|
||||
</folding>
|
||||
@ -72,17 +70,15 @@
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/pubspec.yaml">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="150">
|
||||
<caret line="10" lean-forward="true" selection-start-line="10" selection-end-line="10" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
</leaf>
|
||||
</component>
|
||||
<component name="FileTemplateManagerImpl">
|
||||
<option name="RECENT_TEMPLATES">
|
||||
<list>
|
||||
<option value="Dart File" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
|
||||
</component>
|
||||
@ -91,6 +87,8 @@
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/test/widget_test.dart" />
|
||||
<option value="$PROJECT_DIR$/pubspec.yaml" />
|
||||
<option value="$PROJECT_DIR$/android/app/build.gradle" />
|
||||
<option value="$PROJECT_DIR$/lib/MyCounter.dart" />
|
||||
<option value="$PROJECT_DIR$/lib/main.dart" />
|
||||
</list>
|
||||
</option>
|
||||
@ -100,7 +98,9 @@
|
||||
<option name="width" value="1440" />
|
||||
<option name="height" value="811" />
|
||||
</component>
|
||||
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
|
||||
<component name="ProjectLevelVcsManager" settingsEditedManually="true">
|
||||
<ConfirmationsSetting value="2" id="Add" />
|
||||
</component>
|
||||
<component name="ProjectView">
|
||||
<navigator proportions="" version="1">
|
||||
<foldersAlwaysOnTop value="true" />
|
||||
@ -120,6 +120,17 @@
|
||||
<item name="persist_key_value" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="android" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="persist_key_value" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="persist_key_value" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="android" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="app" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="persist_key_value" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="persist_key_value" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="lib" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="persist_key_value" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="persist_key_value" type="462c0819:PsiDirectoryNode" />
|
||||
@ -133,9 +144,12 @@
|
||||
</panes>
|
||||
</component>
|
||||
<component name="PropertiesComponent">
|
||||
<property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1533592102787" />
|
||||
<property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1533596990709" />
|
||||
<property name="dart.analysis.tool.window.force.activate" value="false" />
|
||||
<property name="io.flutter.reload.alreadyRun" value="true" />
|
||||
<property name="project.structure.last.edited" value="Modules" />
|
||||
<property name="project.structure.proportion" value="0.0" />
|
||||
<property name="project.structure.side.proportion" value="0.0" />
|
||||
<property name="show.migrate.to.gradle.popup" value="false" />
|
||||
</component>
|
||||
<component name="RunDashboard">
|
||||
@ -165,6 +179,7 @@
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="0" y="23" width="1440" height="804" extended-state="6" />
|
||||
<editor active="true" />
|
||||
<layout>
|
||||
<window_info id="Designer" />
|
||||
<window_info id="Build Variants" side_tool="true" />
|
||||
@ -221,17 +236,42 @@
|
||||
<entry file="file://$PROJECT_DIR$/pubspec.yaml">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="150">
|
||||
<caret line="10" lean-forward="true" selection-start-line="10" selection-end-line="10" />
|
||||
<caret line="10" selection-start-line="10" selection-end-line="10" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/android/app/build.gradle">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="234">
|
||||
<caret line="27" lean-forward="true" selection-start-line="27" selection-end-line="27" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/android/build.gradle">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="180">
|
||||
<caret line="12" selection-start-line="12" selection-end-line="12" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/sdks/flutter_sdk/.pub-cache/hosted/pub.dartlang.org/shared_preferences-0.4.2/lib/shared_preferences.dart">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="151">
|
||||
<caret line="88" column="15" selection-start-line="88" selection-start-column="15" selection-end-line="88" selection-end-column="15" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/lib/MyCounter.dart">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="165">
|
||||
<caret line="11" selection-start-line="11" selection-end-line="11" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/lib/main.dart">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="300">
|
||||
<caret line="20" column="23" lean-forward="true" selection-start-line="20" selection-start-column="23" selection-end-line="20" selection-end-column="23" />
|
||||
<state relative-caret-position="323">
|
||||
<caret line="37" column="41" lean-forward="true" selection-start-line="37" selection-start-column="41" selection-end-line="37" selection-end-column="41" />
|
||||
<folding>
|
||||
<element signature="e#0#39#0" expanded="true" />
|
||||
</folding>
|
||||
@ -241,6 +281,65 @@
|
||||
</component>
|
||||
<component name="masterDetails">
|
||||
<states>
|
||||
<state key="ArtifactsStructureConfigurable.UI">
|
||||
<settings>
|
||||
<artifact-editor />
|
||||
<splitter-proportions>
|
||||
<option name="proportions">
|
||||
<list>
|
||||
<option value="0.2" />
|
||||
</list>
|
||||
</option>
|
||||
</splitter-proportions>
|
||||
</settings>
|
||||
</state>
|
||||
<state key="FacetStructureConfigurable.UI">
|
||||
<settings>
|
||||
<last-edited>Android</last-edited>
|
||||
<splitter-proportions>
|
||||
<option name="proportions">
|
||||
<list>
|
||||
<option value="0.2" />
|
||||
</list>
|
||||
</option>
|
||||
</splitter-proportions>
|
||||
</settings>
|
||||
</state>
|
||||
<state key="GlobalLibrariesConfigurable.UI">
|
||||
<settings>
|
||||
<splitter-proportions>
|
||||
<option name="proportions">
|
||||
<list>
|
||||
<option value="0.2" />
|
||||
</list>
|
||||
</option>
|
||||
</splitter-proportions>
|
||||
</settings>
|
||||
</state>
|
||||
<state key="JdkListConfigurable.UI">
|
||||
<settings>
|
||||
<last-edited>1.8</last-edited>
|
||||
<splitter-proportions>
|
||||
<option name="proportions">
|
||||
<list>
|
||||
<option value="0.2" />
|
||||
</list>
|
||||
</option>
|
||||
</splitter-proportions>
|
||||
</settings>
|
||||
</state>
|
||||
<state key="ModuleStructureConfigurable.UI">
|
||||
<settings>
|
||||
<last-edited>persist_key_value_android</last-edited>
|
||||
<splitter-proportions>
|
||||
<option name="proportions">
|
||||
<list>
|
||||
<option value="0.2" />
|
||||
</list>
|
||||
</option>
|
||||
</splitter-proportions>
|
||||
</settings>
|
||||
</state>
|
||||
<state key="ProjectJDKs.UI">
|
||||
<settings>
|
||||
<splitter-proportions>
|
||||
@ -252,6 +351,18 @@
|
||||
</splitter-proportions>
|
||||
</settings>
|
||||
</state>
|
||||
<state key="ProjectLibrariesConfigurable.UI">
|
||||
<settings>
|
||||
<last-edited>Dart Packages</last-edited>
|
||||
<splitter-proportions>
|
||||
<option name="proportions">
|
||||
<list>
|
||||
<option value="0.2" />
|
||||
</list>
|
||||
</option>
|
||||
</splitter-proportions>
|
||||
</settings>
|
||||
</state>
|
||||
</states>
|
||||
</component>
|
||||
</project>
|
@ -1,25 +1,101 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
void main() {
|
||||
runApp(new MaterialApp(
|
||||
// Disable the debug flag
|
||||
debugShowCheckedModeBanner: false,
|
||||
// Home
|
||||
home: new MyHome()));
|
||||
}
|
||||
|
||||
class MyHome extends StatefulWidget {
|
||||
@override
|
||||
MyHomeState createState() {
|
||||
return new MyHomeState();
|
||||
}
|
||||
}
|
||||
|
||||
class MyHomeState extends State<MyHome> {
|
||||
var nameOfApp = "Persist Key Value";
|
||||
|
||||
runApp(new MaterialApp(
|
||||
// Title
|
||||
title: nameOfApp,
|
||||
// Home
|
||||
home: new Scaffold(
|
||||
// Appbar
|
||||
appBar: new AppBar(
|
||||
// Title
|
||||
title: new Text(nameOfApp),
|
||||
),
|
||||
// Body
|
||||
body: new Container(
|
||||
// Center the content
|
||||
child: new Center(
|
||||
// Add Text
|
||||
child: new Text("Hello World!"),
|
||||
var counter = 0;
|
||||
|
||||
// define a key to use later
|
||||
var key = "counter";
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_loadSavedData();
|
||||
}
|
||||
|
||||
_loadSavedData() async {
|
||||
// Get shared preference instance
|
||||
SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||
setState(() {
|
||||
// Get value
|
||||
counter = (prefs.getInt(key) ?? 0);
|
||||
});
|
||||
}
|
||||
|
||||
_onIncrementHit() async {
|
||||
// Get shared preference instance
|
||||
SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||
|
||||
setState(() {
|
||||
// Get value
|
||||
counter = (prefs.getInt(key) ?? 0) + 1;
|
||||
});
|
||||
|
||||
// Save Value
|
||||
prefs.setInt(key, counter);
|
||||
}
|
||||
|
||||
_onDecrementHit() async {
|
||||
// Get shared preference instance
|
||||
SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||
|
||||
setState(() {
|
||||
// Get value
|
||||
counter = (prefs.getInt(key) ?? 0) - 1;
|
||||
});
|
||||
|
||||
// Save Value
|
||||
prefs.setInt(key, counter);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return new Scaffold(
|
||||
// Appbar
|
||||
appBar: new AppBar(
|
||||
// Title
|
||||
title: new Text(nameOfApp),
|
||||
),
|
||||
// Body
|
||||
body: new Container(
|
||||
// Center the content
|
||||
child: new Center(
|
||||
child: new Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
new Text(
|
||||
'$counter',
|
||||
textScaleFactor: 10.0,
|
||||
),
|
||||
new Padding(padding: new EdgeInsets.all(10.0)),
|
||||
new RaisedButton(
|
||||
onPressed: _onIncrementHit,
|
||||
child: new Text('Increment Counter')),
|
||||
new Padding(padding: new EdgeInsets.all(10.0)),
|
||||
new RaisedButton(
|
||||
onPressed: _onDecrementHit,
|
||||
child: new Text('Decrement Counter')),
|
||||
],
|
||||
),
|
||||
),
|
||||
)));
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user