Значение CheckBox, которое я хочу добавить, если пользователь проверит checkBox, тогда он должен добавить сумму = сумму + 18%, если нет, то только сумму моего кода - PullRequest
1 голос
/ 22 апреля 2020

Я хочу добавить, если пользователь проверяет checkBox, тогда он должен добавить amount=amount + 18%, если нет, то единственное количество мой код

final amountController = TextEditingController();

Container(
  height: 50.0,
  padding: EdgeInsets.only(left: 8),
  margin: EdgeInsets.only(top: 8),
  decoration:
      BoxDecoration(border: Border.all(color: Colors.grey[300], width: 1)),
  child: TextFormField(
    controller: amountController,
    decoration: new InputDecoration(
      border: InputBorder.none,
      hintStyle: new TextStyle(color: Colors.grey[500]),
      hintText: "Assesment Amount",
      fillColor: Colors.transparent,
    ),
    keyboardType: TextInputType.number,
  ),
);

// ======= код checkBox ============

Container(
  child: Checkbox(
      value: checkBoxValue,
      onChanged: (value) {
        setState(() {
          checkBoxValue = value;
        });
      }),
);

// ======== Вставить код =========

else if (update == false && imageFile != null) {
  setState(() {
    name = titleController.text;
    nameList.add(name);
    amountList.add(amountController.text);
    img.add(imageFile);
    titleController.clear();
    amountController.clear();
    imageFile = null;
  });
}

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020
int amount=0;
if (checkBoxValue){
    amount = int.parse(amountController.text) + int.parse(amountController.text)*18/100;
}
else {
    amount = int.parse(amountController.text);
}
0 голосов
/ 22 апреля 2020

Прежде всего мы проанализируем записанную сумму, которая находится в String, в целое число, чтобы мы могли выполнять вычисления, затем мы можем получить статус флажка, используя логическое checkBoxValue. Если checkBoxValue == true, мы добавим 18% суммы, введенной в переменную суммы, иначе мы просто добавим сумму как есть.

else if (update == false && imageFile != null) {
      setState(() {
      name = titleController.text;
      nameList.add(name);
      int _amount = int.parse(amountController.text);
      _amount = checkBoxValue ? _amount + ((18 / _amount) * 100) : _amount;
      amountList.add(_amount);
      img.add(imageFile);
      titleController.clear();
      amountController.clear();
      imageFile = null;
      });
}
...