pubspec.yamlにShared Preferencesというパッケージを追加する必要がある
1 2 3 4 5 | dependencies: flutter: sdk: flutter path_provider: any shared_preferences: any |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | class _MyHomePageState extends State<MyHomePage> { final _controller = TextEditingController(); double _r = 0.0; double _g = 0.0; double _b = 0.0; @override void initState(){ super.initState(); loadPref(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Home'), ), body: Padding( padding: EdgeInsets.all(20), child:Column( children:<Widget> [ Text('PREFERENCES ACCESS', style: TextStyle(fontSize: 32, fontWeight: ui.FontWeight.w500), ), Padding(padding: EdgeInsets.all(10.0)), TextField( controller: _controller, style: TextStyle(fontSize: 24), minLines: 1, maxLines: 5, ), Padding(padding: EdgeInsets.all(10.0)), Slider( min: 0.0, max: 255.0, value: _r, divisions: 255, onChanged: (double value) { setState(() { _r = value; }); }, ), Slider( min: 0.0, max: 255.0, value: _g, divisions: 255, onChanged: (double value) { setState(() { _g = value; }); }, ), Slider( min: 0.0, max: 255.0, value: _b, divisions: 255, onChanged: (double value) { setState(() { _b = value; }); }, ), Container( padding: EdgeInsets.all(20), width: 125, height: 125, color: Color.fromARGB(255, _r.toInt(), _g.toInt(), _b.toInt()), ), ], ), ), floatingActionButton: FloatingActionButton( child: Icon(Icons.open_in_new), onPressed: () { savePref(); showDialog( context: context, builder: (BuildContext context) => AlertDialog( title: Text("saved!"), content: Text("save preferences."), ) ); } ) ); } void loadPref() async { final prefs = await SharedPreferences.getInstance(); setState((){ _r = (prefs.getDouble('r') ?? 0.0); _g = (prefs.getDouble('g') ?? 0.0); _b = (prefs.getDouble('b') ?? 0.0); _controller.text = (prefs.getString('input') ?? ''); }); } void savePref() async { final prefs = await SharedPreferences.getInstance(); prefs.setDouble('r', _r); prefs.setDouble('g', _g); prefs.setDouble('b', _b); prefs.setString('input', _controller.text); } } |