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

Flutter从SharedPreferences StringList读取数据初始化TextEditingController报错求助

解决方案

问题原因

TextEditingController的构造函数不支持位置参数,你直接传入info[0]作为位置参数不符合它的构造规则,所以会报"Too many positional arguments"错误。

正确写法

初始化TextEditingController时,需要通过**命名参数text**来设置初始文本:

displayname = TextEditingController(text: info[0]);

空安全与边界处理(避免崩溃)

考虑到info可能为空、或者列表长度不足的情况,建议加上判断逻辑防止索引越界:

@override
void onInit() {
  super.onInit();
  // 先从SharedPreferences读取info列表
  List<String>? info = ...; // 你的读取逻辑
  if (info != null && info.isNotEmpty) {
    displayname = TextEditingController(text: info[0]);
  } else {
    displayname = TextEditingController(); // 初始化空的控制器
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 09:35:16