Ich arbeite am Flattern und kann meine API-Anfrage mit dio perfekt analysieren, aber nachdem ich meinen Artikel aufgelistet habe, anstatt die Gesamtsumme in der Datenbank zu speichern, möchte ich die Benutzersumme von zwei Spalten aus der Datenbank anzeigen, aber ich stoße auf den Argumenttyp ' int 'kann nicht dem Parameter string error zugewiesen werden. Hier ist mein Code

? ListView.builder(
            itemCount: filteredItems.length,
            itemBuilder: (BuildContext context, int index) {
              return GestureDetector(

                onTap: () {
                 
                Navigator.of(context).pushNamed(PostDetail.routeName, arguments: filteredItems[index]);
                },
                child: Card(

                  elevation: 10,
                  child: Padding(
                    padding: const EdgeInsets.symmetric(
                        vertical: 10, horizontal: 8),
                    child: Column(
                      children: <Widget>[

                        Text(
                          filteredItems[index]['product_name'],
                          style: TextStyle(fontSize: 18),
                        ),
                        Text(
                          // here i need to display two columans from database but error appers here
         int.parse( filteredItems[index]['priceOne'])- int parse(filteredItems[index]['priceDisc']); 
                               
                                              
                        ),
                      ],
                    ),

                  ),
                ),
              );
            })
-1
Khal 19 Aug. 2020 im 14:28

2 Antworten

Beste Antwort

Das wird definitiv keinen Text anzeigen, da das Widget Text ein String benötigt. Was Sie tun müssen, ist, das int in ein String umzuwandeln, um es anzuzeigen. Hier ist ein Beispiel:

 Text((int.parse(filteredItems[index]['priceOne'])- int.parse(filteredItems[index]['priceDisc'])).toString()), 
1
Uni 19 Aug. 2020 im 11:32

Sie können nicht im Text anzeigen: Text( int.parse( filteredItems[index]['priceOne'])- int parse(filteredItems[index]['priceDisc']); )

Sie müssen zum Beispiel schreiben:

Row(
   children: [
    Text(
filteredItems[index]['priceOne'] + ' - '),
    Text(filteredItems[index]['priceDisc'])
]
                           
  or:

          Text((int.parse(filteredItems[index]['priceOne'])- int.parse(filteredItems[index]['priceDisc'])).toString()),                           
1
Captivity 19 Aug. 2020 im 11:34