'Format Exception Error Double INVALID IN New-Transaction class
When supply value in input field double and hit button ADD NEW transaction it gives me Error Exception occur double Invalid
The idea of this project is This is a project about expenses user supply two value item name and price of the item and this item will add in a list and show on the screen is a list Everything is going well but only one error or exception
import 'package:flutter/material.dart';
class NewTransaction extends StatelessWidget {
//NewTransaction({Key? key}) : super(key: key);
//@override
//State<NewTransaction> createState() => _NewTransactionState();
final Function addTx;
final titleController = TextEditingController();
final amountController = TextEditingController();
NewTransaction(this.addTx, {Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Card(
elevation: 10,
child: Container(
padding: const EdgeInsets.all(10),
child: Column(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
TextField(
decoration: const InputDecoration(
labelText: 'Enter Title',
labelStyle: TextStyle(
fontSize: 25,
)),
// onChanged: (value) {
// inputtitle = value;
// },
controller: titleController,
),
TextField(
decoration: const InputDecoration(
labelText: 'Enter Amount',
labelStyle: TextStyle(fontSize: 25)),
//One of this method to save value in a field but we try another method
// onChanged: (value) {
// inputamount = value;
// },
controller: amountController,
),
TextButton(
onPressed: () {
//using lisnter mentod i confirm this way my value is save or not
// print(inputtitle);
// print(inputamount);
// print(titleController.text);
addTx(
titleController.text,
double.parse(amountController.text),
);
},
child: Text('Add Transaction',
style: TextStyle(color: Colors.purple)))
],
),
),
);
}
}
Format Exception Error: Invalid Double
User Transaction class
import 'package:flutter/widgets.dart';
import '../modals/transactions.dart';
import 'new_transaction.dart';
import 'transaction_list.dart';
class UserTransactions extends StatefulWidget {
const UserTransactions({Key? key}) : super(key: key);
@override
_UserTransactionsState createState() => _UserTransactionsState();
}
class _UserTransactionsState extends State<UserTransactions> {
final List<TranSaction> _userTransactions = [
TranSaction(
id: 't1',
title: 'New Shoes',
amount: 69.99,
date: DateTime.now(),
),
TranSaction(
id: 't2',
title: 'Weekly Groceries',
amount: 16.53,
date: DateTime.now(),
),
];
void _addNewTransaction(String txTitle, double txAmount) {
final newTx = TranSaction(
title: txTitle,
amount: txAmount,
date: DateTime.now(),
id: DateTime.now().toString(),
);
setState(() {
_userTransactions.add(newTx);
});
}
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
NewTransaction(_addNewTransaction),
TransactionList(_userTransactions),
],
);
}
}
import 'package:budget/modals/transactions.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
class TransactionList extends StatefulWidget {
const TransactionList(List<TranSaction> userTransactions, {Key? key})
: super(key: key);
@override
_TransactionListState createState() => _TransactionListState();
}
class _TransactionListState extends State<TransactionList> {
final List<TranSaction> _userTransacton = [
TranSaction(
id: 't1', title: 'New Shoes', amount: 69.9, date: DateTime.now()),
TranSaction(
id: 't2',
title: 'Weekly Groceries',
amount: 16.53,
date: DateTime.now())
];
@override
Widget build(BuildContext context) {
return Column(
children: _userTransacton.map(
(tx) {
return Card(
child: Row(
children: [
Container(
margin:
const EdgeInsets.symmetric(vertical: 20, horizontal: 30),
decoration: BoxDecoration(
border: Border.all(color: Colors.purple, width: 2)),
padding: const EdgeInsets.all(10),
child: Text(
//we use here string interpolation to output dollor sign
'\$${tx.amount}',
style: TextStyle(
fontWeight: FontWeight.bold,
color: Colors.purple,
fontSize: 25),
),
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
tx.title,
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20),
),
SizedBox(
height: 10,
),
Text(
DateFormat('y/m/d').format(tx.date),
style: TextStyle(color: Colors.blueGrey, fontSize: 15),
)
],
)
],
));
},
).toList(),
);
}
}
class TranSaction {
final String id;
final String title;
final double amount;
final DateTime date;
TranSaction(
{required this.id,
required this.title,
required this.amount,
required this.date});
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
