Search code examples
mysqlflutterdartlistview

How to convert status from number to text


I'm storing the states in a table which I keep as numbers 0 and 1. I want to get these states displayed in the listview builder. But I want these statuses to be displayed as text instead of numbers. 0 = pending approval 1 = approve How do I start building to get that result? I just started writing flutter.

class _view_problemState extends State<view_problem> {
  TextEditingController _searchController = TextEditingController();

  List<problemModel> problemlist = [];
  List<problemModel> originalList = [];
  StreamController _streamController = StreamController();
   Future getAllProblem() async {
    problemlist = await problemcontrollers().getProblem();
    originalList = problemlist;
    _streamController.sink.add(problemlist);
  }

  @override
  void initState() {
    getAllProblem();
    super.initState();
  }
  @override
   Widget build(BuildContext context) {
     return Scaffold(
       appBar: AppBar(
         backgroundColor: Color.fromARGB(255, 14, 12, 134),
        title: const Text('show information'),
      ),
      body: Container(
        child: Column(
          children: <Widget>[
            Padding(
              padding: const EdgeInsets.all(8.0),
             )
             Expanded(
               child: StreamBuilder(
                 stream: _streamController.stream,
                builder: (context, snapshots) {
                  if (snapshots.hasData) {
                    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),
                              ),
                            ),
                          );
                        }));
                   }
                  return Center(
                    child: CircularProgressIndicator(),
                  );
                },
              ),
            )
          ],
        ),
      ),
    );
  }
}

Solution

  • We can use ternary operator in this case. Just update your subtitle like that

    Text(
      problem.status == 0 ? 'pending approval' : 'approve',
      style: TextStyle(
          fontWeight: FontWeight.bold, fontSize: 17),
    )