我试图使用下拉按钮来选择菜单中的文本并显示它。之后,我发送带有所选文本的短信。最后,我尝试使用sharedpref保存值,以在应用关闭后显示文本。为此,我在初始化状态下上传了sharedpref。但是我有一个错误:
failed assertion line 481 pos 15: value==null||items.where((DropdownMenuItem<T>
item) => item.value == value).length == 1: is not true.
这是我的下拉按钮块:
new DropdownButton<String>(
onChanged: (String changedValue) {
selectedText=changedValue;
setState(() {
selectedText;
});
},
value: selectedText,
items: <String>['1', '2', '3','4', '5', '6','7', '8', '9']
.map((String value) {
return new DropdownMenuItem<String>(
value: value,
child: new Text(value),
);
}).toList()),
这是我的sharedpref块:
_savevaluesonnerie() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
setState(() {
prefs.setString('counter305', selectedText);
});
}
_loadvaluesonnerie() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
setState(() {
selectedText = (prefs.getString('counter305')) ??"" ;
});
}
我在初始化状态下调用此sharedpref块以显示保存的值
@override
void initState() {
super.initState();
_loadvaluesonnerie();
}
谢谢
答案 0 :(得分:2)
当您使用 async 函数_loadvaluesonnerie()
设置selectedText
时,selectedText
将为空。
您可以将某些{strong>默认值(例如'1'
(项中的第一项)设置为selectedText
的初始值吗?
这对您有用吗?