Saya ingin tahu bagaimana menerapkan kode ini, dengan tiga variabel input dan tiga solusi berbeda yang terkait dengan setiap opsi dropdown. Setiap kali saya memilih opsi, apakah itu memblokir entri yang bukan bagian dari persamaan dan mengembalikan nilai perhitungan item yang dipilih?

var _currencies = ['A', 'B', 'C'];  

DropdownButtonHideUnderline( child: DropdownButton<String>(
                                  items: _currencies.map((String value) {
                                    return DropdownMenuItem<String>(
                                      value: value,
                                      child: Text(value),
                                    );
                                  }).toList(),
                                  value: _currentItemSelected,
                                  isDense: true,
                                  onChanged: (String newValueSelected) {
                                    //code a executar
                                    _onDropDownItemSelected(
                                        newValueSelected);
                                  },
                                ))


 String _calculateTotalReturns() {
double entry1 = double.parse(entry1Controller.text);
double entry2 = double.parse(entry2Controller.text);
double entry3 = double.parse(entry3Controller.text);

//Tiga persamaan untuk setiap opsi dropdown

double total1 = entry1 * entry2;             //FOR DROPDOWN A
double total2 = entry1 + entry2 + entry3     //FOR DROPDOWN B
double total3 = entry1*entry2+entry3         //FOR DROPDOWN C


String result = '';

Kembali hasil; // Bagaimana mengembalikan hasil untuk dropdown saat ini yang dipilih ketika saya menerapkan tombol hitung??? }

//------------------------------------------------ --------------------

child: RaisedButton(
                          child: Text(
                            'Calcular',
                            textScaleFactor: 1.5,
                          ),
                          color: Theme.of(context).accentColor,
                          textColor: Theme.of(context).primaryColorDark,
                          onPressed: () {
                            setState(() {
                              if (_formKey.currentState.validate()) {
                                this.displayResult =
                                    _calculateTotalReturns();
                              }
                            });
                          },
                        ),
0
Aaron Kadima 4 Juli 2020, 13:45

1 menjawab

Jawaban Terbaik

Anda harus memiliki variabel global yang akan menyimpan nilai yang dipilih pengguna dari dropdown. Sebagai contoh,

String selectedValue;  // <-- this will be a global variable.

Ubah variabel global pada onChanged

onChanged: (String newValueSelected) {
    selectedValue = newValueSelected;
}

Kemudian Anda dapat mengakses variabel ini dalam metode _calculateTotalReturns() dan mengembalikan hasil yang benar seperti..

    String _calculateTotalReturns() {
       
       //other code

       String result;
  
       if(selectedValue == 'A'){
          result = total1.toString();
       }
       else if(selectedValue == 'B'){
          result = total2.toString();
       }
       else{
          result = total3.toString();
       }
  
       return result;
    }
0
Jigar Patel 4 Juli 2020, 11:13