【发布时间】:2021-03-19 04:33:55
【问题描述】:
我的应用程序做的工作太多。如何优化此代码?我不知道如何改变它,仍然得到同样的效果! 我需要将每个变量都保存在手机上,这样我就可以随时回到那个状态。
我试图将每天的分数保存在自己的变量中,因为我不知道如何以不同的方式返回它。
如你所见,我是初学者。
代码:
_loadDay() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
setState(() {
_day = (prefs.getInt('day') ?? 0);
day = _day -1;
_score=_counter[day];
});
}
_loadCounter() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
setState(() {
if(_day==1){
_counter[day] = (prefs.getInt('counter1') ?? 0);
_score=_counter[day];
}
if(_day==2){
_counter[day] = (prefs.getInt('counter2') ?? 0);
_score=_counter[day];
}
if(_day==3){
_counter[day] = (prefs.getInt('counter3') ?? 0);
_score=_counter[day];
}
if(_day==4){
_counter[day] = (prefs.getInt('counter4') ?? 0);
_score=_counter[day];
}
if(_day==5){
_counter[day] = (prefs.getInt('counter5') ?? 0);
_score=_counter[day];
}
if(_day==6){
_counter[day] = (prefs.getInt('counter6') ?? 0);
_score=_counter[day];
}if(_day==7){
_counter[day] = (prefs.getInt('counter7') ?? 0);
_score=_counter[day];
}
if(_day==8){
_counter[day] = (prefs.getInt('counter8') ?? 0);
_score=_counter[day];
}
if(_day==9){
_counter[day] = (prefs.getInt('counter9') ?? 0);
_score=_counter[day];
}
if(_day==10){
_counter[day] = (prefs.getInt('counter10') ?? 0);
_score=_counter[day];
}
if(_day==11){
_counter[day] = (prefs.getInt('counter11') ?? 0);
_score=_counter[day];
}
if(_day==12){
_counter[day] = (prefs.getInt('counter12') ?? 0);
_score=_counter[day];
}if(_day==13){
_counter[day] = (prefs.getInt('counter13') ?? 0);
_score=_counter[day];
}
if(_day==14){
_counter[day] = (prefs.getInt('counter14') ?? 0);
_score=_counter[day];
}
if(_day==15){
_counter[day] = (prefs.getInt('counter15') ?? 0);
_score=_counter[day];
}
if(_day==16){
_counter[day] = (prefs.getInt('counter16') ?? 0);
_score=_counter[day];
}
if(_day==17){
_counter[day] = (prefs.getInt('counter17') ?? 0);
_score=_counter[day];
}
if(_day==18){
_counter[day] = (prefs.getInt('counter18') ?? 0);
_score=_counter[day];
}
if(_day==19){
_counter[day] = (prefs.getInt('counter19') ?? 0);
_score=_counter[day];
}
if(_day==20){
_counter[day] = (prefs.getInt('counter20') ?? 0);
_score=_counter[day];
}
if(_day==21){
_counter[day] = (prefs.getInt('counter21') ?? 0);
_score=_counter[day];
}
if(_day==22){
_counter[day] = (prefs.getInt('counter22') ?? 0);
_score=_counter[day];
}
if(_day==23){
_counter[day] = (prefs.getInt('counter23') ?? 0);
_score=_counter[day];
}
if(_day==24){
_counter[day] = (prefs.getInt('counter24') ?? 0);
_score=_counter[day];
}
if(_day==25){
_counter[day] = (prefs.getInt('counter25') ?? 0);
_score=_counter[day];
}
if(_day==26){
_counter[day] = (prefs.getInt('counter26') ?? 0);
_score=_counter[day];
}
if(_day==27){
_counter[day] = (prefs.getInt('counter27') ?? 0);
_score=_counter[day];
}
if(_day==28){
_counter[day] = (prefs.getInt('counter28') ?? 0);
_score=_counter[day];
}
if(_day==29){
_counter[day] = (prefs.getInt('counter29') ?? 0);
_score=_counter[day];
}
if(_day==30){
_counter[day] = (prefs.getInt('counter30') ?? 0);
_score=_counter[day];
}
});
}
//Incrementing counter after click
_incrementCounter() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
setState(() {
if(_day==1){
_loadCounter();
_counter[day] = (prefs.getInt('counter1') ?? 0) + 1;
prefs.setInt('counter1', _counter[day]);
_score=_counter[day];
}
if(_day==2){
_loadCounter();
_counter[day] = (prefs.getInt('counter2') ?? 0) + 1;
prefs.setInt('counter2', _counter[day]);
_score=_counter[day];
}
if(_day==3){
_loadCounter();
_counter[day] = (prefs.getInt('counter3') ?? 0) + 1;
prefs.setInt('counter3', _counter[day]);
_score=_counter[day];
}
if(_day==4){
_loadCounter();
_counter[day] = (prefs.getInt('counter4') ?? 0) + 1;
prefs.setInt('counter4', _counter[day]);
_score=_counter[day];
}
if(_day==5){
_loadCounter();
_counter[day] = (prefs.getInt('counter5') ?? 0) + 1;
prefs.setInt('counter5', _counter[day]);
_score=_counter[day];
}
if(_day==6){
_loadCounter();
_counter[day] = (prefs.getInt('counter6') ?? 0) + 1;
prefs.setInt('counter6', _counter[day]);
_score=_counter[day];
}
if(_day==7){
_loadCounter();
_counter[day] = (prefs.getInt('counter7') ?? 0) + 1;
prefs.setInt('counter7', _counter[day]);
_score=_counter[day];
}
if(_day==8){
_loadCounter();
_counter[day] = (prefs.getInt('counter8') ?? 0) + 1;
prefs.setInt('counter8', _counter[day]);
_score=_counter[day];
}
if(_day==9){
_loadCounter();
_counter[day] = (prefs.getInt('counter9') ?? 0) + 1;
prefs.setInt('counter9', _counter[day]);
_score=_counter[day];
}
if(_day==10){
_loadCounter();
_counter[day] = (prefs.getInt('counter10') ?? 0) + 1;
prefs.setInt('counter10', _counter[day]);
_score=_counter[day];
}
if(_day==11){
_loadCounter();
_counter[day] = (prefs.getInt('counter11') ?? 0) + 1;
prefs.setInt('counter11', _counter[day]);
_score=_counter[day];
}
if(_day==12){
_loadCounter();
_counter[day] = (prefs.getInt('counter12') ?? 0) + 1;
prefs.setInt('counter12', _counter[day]);
_score=_counter[day];
}
if(_day==13){
_loadCounter();
_counter[day] = (prefs.getInt('counter13') ?? 0) + 1;
prefs.setInt('counter13', _counter[day]);
_score=_counter[day];
}
if(_day==14){
_loadCounter();
_counter[day] = (prefs.getInt('counter14') ?? 0) + 1;
prefs.setInt('counter14', _counter[day]);
_score=_counter[day];
}
if(_day==15){
_loadCounter();
_counter[day] = (prefs.getInt('counter15') ?? 0) + 1;
prefs.setInt('counter15', _counter[day]);
_score=_counter[day];
}
if(_day==16){
_loadCounter();
_counter[day] = (prefs.getInt('counter16') ?? 0) + 1;
prefs.setInt('counter16', _counter[day]);
_score=_counter[day];
}
if(_day==17){
_loadCounter();
_counter[day] = (prefs.getInt('counter17') ?? 0) + 1;
prefs.setInt('counter17', _counter[day]);
_score=_counter[day];
}
if(_day==18){
_loadCounter();
_counter[day] = (prefs.getInt('counter18') ?? 0) + 1;
prefs.setInt('counter18', _counter[day]);
_score=_counter[day];
}
if(_day==19){
_loadCounter();
_counter[day] = (prefs.getInt('counter19') ?? 0) + 1;
prefs.setInt('counter19', _counter[day]);
_score=_counter[day];
}
if(_day==20){
_loadCounter();
_counter[day] = (prefs.getInt('counter20') ?? 0) + 1;
prefs.setInt('counter20', _counter[day]);
_score=_counter[day];
}
if(_day==21){
_loadCounter();
_counter[day] = (prefs.getInt('counter21') ?? 0) + 1;
prefs.setInt('counter21', _counter[day]);
_score=_counter[day];
}
if(_day==22){
_loadCounter();
_counter[day] = (prefs.getInt('counter22') ?? 0) + 1;
prefs.setInt('counter22', _counter[day]);
_score=_counter[day];
}
if(_day==23){
_loadCounter();
_counter[day] = (prefs.getInt('counter23') ?? 0) + 1;
prefs.setInt('counter23', _counter[day]);
_score=_counter[day];
}
if(_day==24){
_loadCounter();
_counter[day] = (prefs.getInt('counter24') ?? 0) + 1;
prefs.setInt('counter24', _counter[day]);
_score=_counter[day];
}
if(_day==25){
_loadCounter();
_counter[day] = (prefs.getInt('counter25') ?? 0) + 1;
prefs.setInt('counter25', _counter[day]);
_score=_counter[day];
}
if(_day==26){
_loadCounter();
_counter[day] = (prefs.getInt('counter26') ?? 0) + 1;
prefs.setInt('counter26', _counter[day]);
_score=_counter[day];
}
if(_day==27){
_loadCounter();
_counter[day] = (prefs.getInt('counter27') ?? 0) + 1;
prefs.setInt('counter27', _counter[day]);
_score=_counter[day];
}
if(_day==28){
_loadCounter();
_counter[day] = (prefs.getInt('counter28') ?? 0) + 1;
prefs.setInt('counter28', _counter[day]);
_score=_counter[day];
}
if(_day==29){
_loadCounter();
_counter[day] = (prefs.getInt('counter29') ?? 0) + 1;
prefs.setInt('counter29', _counter[day]);
_score=_counter[day];
}
if(_day==30){
_loadCounter();
_counter[day] = (prefs.getInt('counter30') ?? 0) + 1;
prefs.setInt('counter30', _counter[day]);
_score=_counter[day];
}
});
}
【问题讨论】:
-
循环,通过字符串插值创建首选项名称,完成了吗?
-
如果您有工作代码希望同行评审以进行改进,您应该在专门为此目的创建的Code Review 上提问。
-
@KenWhite 好的,谢谢,我去那里试试!
标签: android flutter dart refactoring counter