Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

erro double.tryParse

class FormularioTransferencia extends StatelessWidget {
final TextEditingController _controladorCampoNumeroConta =
    TextEditingController();
 final TextEditingController _controladorCampoValor = TextEditingController();   

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Criando Transferência'),
      ),
      body: Column(
        children: <Widget>[
          Padding(
            padding: const EdgeInsets.all(16.0),
            child: TextField(
              controller: _controladorCampoNumeroConta,
              style: TextStyle(
                fontSize: 24.0,
              ),
              decoration: InputDecoration(
                labelText: 'Número da conta',
                hintText: '0000'
              ),
              keyboardType: TextInputType.number,
            ),
          ),
          Padding(
            padding: const EdgeInsets.all(16.0),
            child: TextField(
              controller: _controladorCampoValor,
              style: TextStyle(
                fontSize: 24.0,
              ),
              decoration: InputDecoration(
                icon: Icon(Icons.monetization_on),
                labelText: 'Valor',
                hintText: '0.00'
              ),
              keyboardType: TextInputType.number,
            ),
          ),


          ElevatedButton(
            onPressed: () {
              debugPrint('clicou no confirmar');
            final int numeroConta = int.tryParse(_controladorCampoNumeroConta);
            final double valor = double.tryParse(_controladorCampoValor);
            if(numeroConta != null && valor != null){
              final transferenciaCriada = Transferencia(valor, numeroConta);
            debugPrint('$transferenciaCriada');
              }
            },
            child: const Text(
              "Confirmar",
              style: TextStyle(fontSize: 24),
            ),
          )  
        ],
      ),
    );
  }
}
  class ListaTransferencia extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Scaffold(
      appBar: AppBar(
      title: Text('Transferências'),
    ),
      body: Column(
      children: <Widget>[
        ItemTransferencia(Transferencia(100.0, 1000)),
        ItemTransferencia(Transferencia(200.0, 2000)),
        ItemTransferencia(Transferencia(300.0, 3000)),
        ],
    ),
    floatingActionButton: FloatingActionButton(
      onPressed: () {  },
      child: Icon(Icons.add),
    ),
    );
  }
}

class ItemTransferencia extends StatelessWidget {

  final Transferencia _transferencia;

  ItemTransferencia(this._transferencia);
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Card(
          child: ListTile(
            leading: Icon(Icons.monetization_on),
            title: Text(_transferencia.valor.toString()),
            subtitle: Text(_transferencia.numeroConta.toString()),
          ),
        );
  }
}

class Transferencia {
  final double valor;
  final int numeroConta;

  Transferencia(this.valor, this.numeroConta);

  @override
  String toString() {
    return 'Transfrerencia{valor: $valor, numeroConta: $numeroConta}';
  }
}
retorna os seguintes erros :
    ERROR: lib/main.dart:63:50: Error: The argument type 'TextEditingController' can't be assigned to the parameter type 'String'.
ERROR:  - 'TextEditingController' is from 'package:flutter/src/widgets/editable_text.dart' ('../../snap/flutter/common/flutter/packages/flutter/lib/src/widgets/editable_text.dart').
ERROR:             final int numeroConta = int.tryParse(_controladorCampoNumeroConta);
ERROR:                                                  ^
ERROR: lib/main.dart:63:41: Error: A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
ERROR:             final int numeroConta = int.tryParse(_controladorCampoNumeroConta);
ERROR:                                         ^
ERROR: lib/main.dart:64:50: Error: The argument type 'TextEditingController' can't be assigned to the parameter type 'String'.
ERROR:  - 'TextEditingController' is from 'package:flutter/src/widgets/editable_text.dart' ('../../snap/flutter/common/flutter/packages/flutter/lib/src/widgets/editable_text.dart').
ERROR:             final double valor = double.tryParse(_controladorCampoValor);
ERROR:                                                  ^
ERROR: lib/main.dart:64:41: Error: A value of type 'double?' can't be assigned to a variable of type 'double' because 'double?' is nullable and 'double' isn't.
ERROR:             final double valor = double.tryParse(_controladorCampoValor);
ERROR:                                         ^
4 respostas

consegui resolver uma parte desse jeito:

        final int? numeroConta = int.tryParse(_controladorCampoNumeroConta.text);
        final double? valor = double.tryParse(_controladorCampoValor.text);

preciso agora resolver o debugPrint

ERROR: lib/main.dart:67:26: Error: The getter 'transferenciaCriada' isn't defined for the class 'FormularioTransferencia'. ERROR: - 'FormularioTransferencia' is from 'package:bytebank2/main.dart' ('lib/main.dart'). ERROR: Try correcting the name to the name of an existing getter, or defining a getter or field named 'transferenciaCriada'. ERROR: debugPrint('$transferenciaCriada'); ERROR:

solução!

o erro era nessa parte : final transferenciaCriada = Transferencia( valor, numeroConta); debugPrint('$transferenciaCriada');

adicionei apenas um espaço após o ( de Transferencia e funcionou, agora não me pergunte como era só isso

Fala Caio!

Tem uns erros que são só porque o computador não tá muito afim de falar conosco kkk

esse eu consegui resolver, o problema é que esse modulo está repleto de erros