You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从数据库获取数字状态并在Flutter ListView中显示为文本

数字状态转文本的实现方案

下面提供两种实用方法,帮你把数据库里的数字状态转换成对应文本展示:

方法一:直接在列表构建逻辑里处理

直接在subtitle的Text组件里加个映射表,快速实现转换:

subtitle: Text(
  // 定义数字到文本的对应关系
  const {
    0: '开始',
    2: '待审批',
    3: '已通过'
  }[int.parse(problem.status)] ?? '未知状态', // 兜底处理未定义的状态值
  style: TextStyle(
      fontWeight: FontWeight.bold, fontSize: 17),
),

如果你的problem.status本身是int类型,删掉int.parse()就行。

方法二:封装到模型类(更规范)

把转换逻辑放到problemModel里,代码更整洁,后续复用也方便:

  1. 先修改你的模型类:
class problemModel {
  // 保留你原来的属性:name_surname、image、status等
  
  // 新增获取状态文本的计算属性
  String get statusText {
    switch(int.parse(status)) {
      case 0:
        return '开始';
      case 2:
        return '待审批';
      case 3:
        return '已通过';
      default:
        return '未知状态';
    }
  }
}
  1. 然后在列表里直接调用:
subtitle: Text(
  problem.statusText,
  style: TextStyle(
      fontWeight: FontWeight.bold, fontSize: 17),
),

小提示

加个兜底的“未知状态”是为了防止数据库里出现没定义的数字,避免界面显示异常。

内容的提问来源于stack exchange,提问作者gamedev dover

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 08:25:43