You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中如何在SharedPreferences中设置与获取字符串列表

实现SharedPreferences中字符串列表的Setter和Getter方法

SharedPreferences本身提供了getStringList()和setStringList()方法,正好适配字符串列表的存储需求,直接基于这两个方法实现setter并完善getter即可:

完整代码实现

// 先定义对应的存储key常量(如果未定义的话)
const String keyUsername = 'username';
const String keyAliases = 'aliases';

class SharedPreferencesHelper {
  static SharedPreferences? _preferences;

  Future<void> init() async {
    _preferences ??= await SharedPreferences.getInstance();
  }

  String get username => _preferences?.getString(keyUsername) ?? '';

  set username(String value) {
    _preferences?.setString(keyUsername, value);
  }

  // 完善getter:返回非空列表,避免调用方处理空值
  List<String> get aliases => _preferences?.getStringList(keyAliases) ?? [];

  // 实现setter:直接调用SharedPreferences的列表存储方法
  set aliases(List<String> value) {
    _preferences?.setStringList(keyAliases, value);
  }
}

关键说明

  • Getter优化:将原本返回List<String>?的逻辑改为?? [],确保无论SharedPreferences中是否有数据,调用方拿到的都是非空的字符串列表,减少空安全判断的冗余代码。
  • Setter实现:直接接收List<String>类型参数,调用setStringList完成存储,逻辑和单个字符串的setter保持一致。
  • 注意事项:必须先调用init()方法完成SharedPreferences实例初始化,否则_preferences为null,所有读写操作都不会生效。

内容的提问来源于stack exchange,提问作者Yunnane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 21:35:25