【发布时间】:2020-10-23 08:38:32
【问题描述】:
我正在尝试将 SharedPreferences 变量保存一天并在特定时间休息,比如下午 3 点
问题是我不确定我是否正确保存了 SharedPreferences var,当我在模拟器中运行应用程序并单击小部件时,我可以看到图片发生变化,这就是我希望它的工作方式.但是当我点击返回时,我返回到同一页面,SharedPreferences var 会自行重置,就像根本没有保存它一样。
如果我做错了什么,请告诉我,感谢帮助。
class Today extends StatefulWidget {
@override
_TodayState createState() => _TodayState();
}
class _TodayState extends State<Today> {
// Future<SharedPreferences> prefs1 = SharedPreferences.getInstance();
// Future<int> pic;
DateTime time = DateTime.now();
Random random = new Random();
int intValue3 = 0;
int number3 = 0;
getIntValue3() async {
SharedPreferences prefs3 = await SharedPreferences.getInstance();
//Return int
setState(() {
if (intValue3 == 0) {
intValue3 = random.nextInt(4);
}
intValue3 = prefs3.getInt('intValue3');
});
return intValue3;
}
loadDate()async{
SharedPreferences prefs3 = await SharedPreferences.getInstance();
int number3 = random.nextInt(4);
print('$number3 3');
prefs3.setInt('intValue3', number3);
}
@override
void initState(){
super.initState();
loadDate();
}
@override
Widget build(BuildContext context) {
return SingleChildScrollView(
child: Container(
color: Colors.black,
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
SizedBox(height: 20),
Align(
alignment: Alignment.topLeft,
child: FlatButton(
onPressed: () {
Navigator.pop(
context,
MaterialPageRoute(builder: (context) {
return ScreenTwo();
}),
);
},
child: Icon(
Icons.arrow_back_ios,
color: Colors.grey,
size: 50.0,
))),
Material(
child: InkWell(
child: Container(
height: 200,
width: 70,
decoration: BoxDecoration(
color: Colors.black,
image: DecorationImage(
image: AssetImage("img/mg$intValue3.jpg"))),
),
onTap: () {
setState(() {
getIntValue3();
});
},
),
),
],
),
),
);
}
}
【问题讨论】:
-
真的很难吗?
标签: flutter sharedpreferences flutter-dependencies