flutter 项目实战三 json数据解析以及Gson格式化flutter 项目实战二 网络请求
flutter 项目实战五 item 点击跳转,webview加载
flutter 项目实战七 bottomNavigationBar
flutter 存储相关使用可参考 《Flutter本地存储》
在学习的项目中,数据的获取需要用到首个item的ID以及最后一个item的ID,在代码中我们用了一个固定值来代替,这么做虽然没有什么影响,但是总归与逛丢后台数据获取的接口设计有误差,还是按照接口本来设计的样子了吧。
flutter 中使用 SharedPreferences 首先需要引用第三方组件
在 pubspace.yaml 中 的 dependencies 下面引入
shared_preferences: ^0.4.1
然后点击右上角的 packages get 等待组件加载完成。
因为 SharedPreferences 的存储与读取都是 耗时操作,所以我们用到了 async与await。
设置以及获取的方法,此处我们只要设置 int 类型的值:
void _setSharedPerfence(String key,int valueId) async{
SharedPreferences sharedPreferences=await SharedPreferences.getInstance();
sharedPreferences.setInt(key, valueId);
}
Future<int> _getShareValue(String key,int valueId) async{
SharedPreferences sharedPreferences= await SharedPreferences.getInstance();
var p= sharedPreferences.getInt(key);
print(p);
//防止还未设置此值,此处给出一个默认值
if(p==null){
return valueId;
}
return p;
}
在设置调用的时候直接调用就好了
_setSharedPerfence("h_markid", _listData[0].id);
在获取值的时候需要注意已经使用了 异步操作,需要在值获取之后再执行相关方法,所以部分方法需要放到获取方法的 then里面去执行,确保需要获取的值能够获取到。此处还需要注意,如果在获取某个key的value之前并没有设置过此key的value,那么获取到的值就为 null 所以需要给出一个默认的值。
Future<int> sinc=_getShareValue("h_sinceid", 5685521).then((id){
formData.add("sinceid", id);
if(type!=""){
formData.add(type, typeValue);
}
pager++;
_getGuangdiuIndexData(formData);
});