如何从数据库获取数字状态并在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里,代码更整洁,后续复用也方便:
- 先修改你的模型类:
class problemModel { // 保留你原来的属性:name_surname、image、status等 // 新增获取状态文本的计算属性 String get statusText { switch(int.parse(status)) { case 0: return '开始'; case 2: return '待审批'; case 3: return '已通过'; default: return '未知状态'; } } }
- 然后在列表里直接调用:
subtitle: Text( problem.statusText, style: TextStyle( fontWeight: FontWeight.bold, fontSize: 17), ),
小提示
加个兜底的“未知状态”是为了防止数据库里出现没定义的数字,避免界面显示异常。
内容的提问来源于stack exchange,提问作者gamedev dover
相关产品推荐
相关产品推荐

