[英]How to bind an enum to DropdownButton in Flutter?
是否可以將下拉按鈕綁定到枚舉? 我創建了一個枚舉並嘗試將其綁定到下拉按鈕,請參閱下面的代碼。 感謝您對此的任何幫助。
enum ClassType {
Class-A,
Class-B,
Class-C,
Class-D
}
DropdownButton<String>(
value: classType,
onChanged: (String newValue) {
setState(() {
viewModel.classType = newValue;
});
},
items: ClassType.map((String classType) {
return DropdownMenuItem<String>(
value: classType,
child: Text(classType),
);
}).toList(),
)
首先,您需要將 DropdownButton 類型參數更新為ClassType
而不是String
。 在 Dart 中,枚舉聲明創建了一個新類型,而不是字符串。
下拉按鈕(...);
接下來,您需要更改枚舉名稱。 枚舉必須是有效的 dart 標識符,這意味着它不能包含符號-
。
enum ClassType {A, B, C, D}
我還更新了您的map
方法,您的枚舉實例上沒有靜態迭代器,您必須將它們列出來。 此外,您需要手動將它們轉換為字符串,或者通過調用toString
來為您提供"ClassType.A"
, ClassType.B"
或通過編寫您自己的函數來執行此操作。
return DropdownButton<ClassType>(
value: classType,
onChanged: (ClassType newValue) {
setState(() {
viewModel.classType = newValue;
});
},
items: ClassType.values.map((ClassType classType) {
return DropdownMenuItem<ClassType>(
value: classType,
child: Text(classType.toString()));
}).toList();
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.