Flutter / Dart将Int转换为Enum

时间:2018-07-05 11:19:30

标签: enums dart flutter

有没有简单的方法可以将整数值转换为枚举?我想从共享首选项中检索一个整数值,并将其转换为枚举类型。

我的列举是:

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

3 个答案:

答案 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])