flutter SharedPreferences存储使用

flutter windows开发环境设置

flutter 项目实战一 新建 flutter 项目

flutter 项目实战二 网络请求

flutter 项目实战三 json数据解析以及Gson格式化flutter 项目实战二 网络请求

flutter 项目实战四 列表数据展示

flutter 项目实战五 item 点击跳转,webview加载

flutter 项目实战六 drawer侧边栏

flutter 项目实战七 bottomNavigationBar

flutter 项目实战八 下拉刷新 上拉加载

flutter 项目实战九 小时风云榜

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 _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 sinc=_getShareValue("h_sinceid", 5685521).then((id){
  formData.add("sinceid", id);
  if(type!=""){
    formData.add(type, typeValue);
  }
  pager++;
  _getGuangdiuIndexData(formData);
});

开源中国 码云Gitee 源码下载地址

你可能感兴趣的:(flutter,flutter,android,studio)