如何从数据库获取状态来显示

问题描述 投票:0回答:2

我想从数据库获取状态并在列表视图中显示为文本,但我存储在数据库中的状态是数字,我如何将这些状态设置为文本?

0 = start
2 = pending approval
3 = Approved

                    return ListView.builder(
                        itemCount: problemlist.length,
                        itemBuilder: ((context, index) {
                           problemModel problem = problemlist[index];
                           return Card(
                            margin: EdgeInsets.all(10),
                            child: ListTile(
                              leading: CircleAvatar(
                                 backgroundImage: NetworkImage(
                                  'http://192.168.1.5/skc/Problem_image/${problem.image}',
                                  ),
                                 ),
                              title: Text(
                                problem.name_surname,
                                style: TextStyle(
                                    fontWeight: FontWeight.bold, fontSize: 19),
                              ),
                               subtitle: Text(
                                problem.status,
                                style: TextStyle(
                                    fontWeight: FontWeight.bold, fontSize: 17),
                              ),
                            ),
                          );
                        }));
                 
mysql flutter dart listview
2个回答
0
投票

最直接的方法是创建一个辅助函数来更改值的类型。

    String getStatusText(int statusCode) {
      switch (statusCode) {
        case 0:
          return 'Start';
        case 2:
          return 'Pending Approval';
        case 3:
          return 'Approved';
        default:
          return 'Unknown Status';
      }
    }

或者稍后,如果您有更复杂的对象,该对象不仅具有状态并直接管理应用程序中的自定义类型

    class Status {
      final int code;
      final String text;
    
      Status._(this.code, this.text);
    
      factory Status.fromCode(int statusCode) {
        switch (statusCode) {
          case 0:
            return Status._(statusCode, 'Start');
          case 2:
            return Status._(statusCode, 'Pending Approval');
          case 3:
            return Status._(statusCode, 'Approved');
          default:
            return Status._(statusCode, 'Unknown Status');
        }
      }
    }


0
投票

创建状态枚举

enum StatusEnum{
      Start,
      PendingApproval,
      Approved,
    }

可以通过

访问
StatusEnum.values[i].name

其中“i”是状态代码

© www.soinside.com 2019 - 2024. All rights reserved.