将计时器字符串保存到共享首选项
Saving a timer string to shared prefs
我目前正在制作一个定时器应用程序,它在点击时启动并停止,并在向上滑动面板中的另一个点击时列出时间。我有一个 class 获取定时器的字符串,如下所示
class Dependencies {
final Stopwatch stopwatch = new Stopwatch();
CurrentTime currentTime;
List<String> savedTime = List<String>();
transformTimeToString(int milliseconds) {
currentTime = transformTimeToTime(stopwatch.elapsedMilliseconds);
int hundreds = (milliseconds / 10).truncate();
int seconds = (hundreds / 100).truncate();
int minutes = (seconds / 60).truncate();
String hundredsStr = (hundreds % 100).toString().padLeft(2, '0');
String secondsStr = (seconds % 60).toString();
String secondsMinStr = (seconds % 60).toString().padLeft(2, '0');
String minutesStr = (minutes % 60).toString();
if (currentTime.minutes > 0) {
return '$minutesStr:$secondsMinStr.$hundredsStr';
} else {
return '$secondsStr.$hundredsStr';
}
}
transformTimeToTime(int milliseconds) {
int hundreds = (milliseconds / 10).truncate();
int seconds = (hundreds / 100).truncate();
int minutes = (seconds / 60).truncate();
return CurrentTime(
hundreds: hundreds % 100,
seconds: seconds % 60,
minutes: minutes % 60,
);
}
}
所以我无法在 json 文件中列出该字符串,然后将其保存到共享首选项。如果有深刻理解的人可以用代码将我推向正确的方向,那将非常有帮助。谢谢猎人
这是指向所有内容的链接Timer Page,Timer String, Whole project
你的问题有点不清楚,所以我假设你想将 List<String> savedTime;
保存到 SharePreference 中并以某种方式重新加载它。
saveTimeList(String key, List<String> savedTime) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setStringList(key, savedTime);
}
像这样检索:
Future<Set<String>> loadSavedTime(String key) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
List<String> stringValue = prefs.getStringList(key) ?? [];
#Input your additional code to convert String back to Time if you want
#
return stringValue.toSet();
}
我目前正在制作一个定时器应用程序,它在点击时启动并停止,并在向上滑动面板中的另一个点击时列出时间。我有一个 class 获取定时器的字符串,如下所示
class Dependencies {
final Stopwatch stopwatch = new Stopwatch();
CurrentTime currentTime;
List<String> savedTime = List<String>();
transformTimeToString(int milliseconds) {
currentTime = transformTimeToTime(stopwatch.elapsedMilliseconds);
int hundreds = (milliseconds / 10).truncate();
int seconds = (hundreds / 100).truncate();
int minutes = (seconds / 60).truncate();
String hundredsStr = (hundreds % 100).toString().padLeft(2, '0');
String secondsStr = (seconds % 60).toString();
String secondsMinStr = (seconds % 60).toString().padLeft(2, '0');
String minutesStr = (minutes % 60).toString();
if (currentTime.minutes > 0) {
return '$minutesStr:$secondsMinStr.$hundredsStr';
} else {
return '$secondsStr.$hundredsStr';
}
}
transformTimeToTime(int milliseconds) {
int hundreds = (milliseconds / 10).truncate();
int seconds = (hundreds / 100).truncate();
int minutes = (seconds / 60).truncate();
return CurrentTime(
hundreds: hundreds % 100,
seconds: seconds % 60,
minutes: minutes % 60,
);
}
}
所以我无法在 json 文件中列出该字符串,然后将其保存到共享首选项。如果有深刻理解的人可以用代码将我推向正确的方向,那将非常有帮助。谢谢猎人
这是指向所有内容的链接Timer Page,Timer String, Whole project
你的问题有点不清楚,所以我假设你想将 List<String> savedTime;
保存到 SharePreference 中并以某种方式重新加载它。
saveTimeList(String key, List<String> savedTime) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setStringList(key, savedTime);
}
像这样检索:
Future<Set<String>> loadSavedTime(String key) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
List<String> stringValue = prefs.getStringList(key) ?? [];
#Input your additional code to convert String back to Time if you want
#
return stringValue.toSet();
}