您好,我在从“共享首选项”获取存储的值并显示它时遇到问题。它给Future不包含长度实例错误。我的代码如下。
保存共享的偏好设置值代码
Future<String> saveSearchQuery(String squery) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
if(prefs.getStringList("searchhistory") == null){
final List<String> recentSearch = [];
recentSearch.insert(0, squery);
prefs.setStringList("searchhistory", recentSearch);
}else{
final recentSearch = prefs.getStringList("searchhistory");
if(recentSearch.contains(squery)){
recentSearch.forEach((e) => print(e));
}else{
recentSearch.insert(0, squery);
}
prefs.setStringList("searchhistory", recentSearch);
}
return prefs.commit().toString();
}
获取共享的偏好值代码
Future<dynamic> getSearchHistory() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
List searchHistory = prefs.getStringList("searchhistory");
return searchHistory.toList();
}
请帮助。谢谢。