有没有简单的方法可以将整数值转换为枚举?我想从共享首选项中检索一个整数值,并将其转换为枚举类型。
我的列举是:
enum ThemeColor { red, gree, blue, orange, pink, white, black };
我想轻松地将整数转换为枚举:
final prefs = await SharedPreferences.getInstance();
ThemeColor c = ThemeColor.convert(prefs.getInt('theme_color')); // something like that
答案 0 :(得分:15)
int idx = 2;
print(ThemeColor.values[idx]);
应该给您
ThemeColor.blue
答案 1 :(得分:5)
您可以使用:
ThemeColor.red.index
应该给你
0
答案 2 :(得分:0)
设置您的枚举,然后使用该值通过索引值获取枚举
enum Status { A, B, C, D }
TextStyle _getColorStyle(Status customStatus) {
Color retCol;
switch (customStatus) {
case Status.A:
retCol = Colors.green;
break;
case Status.B:
retCol = Colors.white;
break;
case Status.C:
retCol = Colors.yellow;
break;
case Status.D:
retCol = Colors.red;
break;
}
return TextStyle(fontSize: 18, color: retCol);
}
调用函数
_getColorStyle(Status.values[myView.customStatus])