解決したい課題
エラーを解消し、
2つ目のテキストフィールドに入力した数値を次の画面に表示させたい。
コード
//入力画面 import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( theme: ThemeData( primarySwatch: Colors.blue, visualDensity: VisualDensity.adaptivePlatformDensity, ), home: HomePage(), ); } } class HomePage extends StatefulWidget { @override createState() => HomePageState(); } class HomePageState extends State<HomePage> { // String email; int phone; @override Widget build(BuildContext context) => Scaffold( appBar: AppBar( title: Text('入力画面'), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ TextField( onChanged: (value) { setState(() { email = value; }); }, decoration: InputDecoration(hintText: 'メールアドレス'), ), TextField( keyboardType: TextInputType.number, onChanged: (value) { setState(() { phone = value as int; }); }, decoration: InputDecoration(hintText: '電話番号'), ), RaisedButton( child: Text('確認画面へ'), onPressed: () { Navigator.push( context, MaterialPageRoute(builder: (context) => NextPage(email: email, phone: phone)), ); }), ], ), ), ); } class NextPage extends StatelessWidget { // final String email; final int phone; NextPage({ this.email, this.phone, }); @override Widget build(BuildContext context) => Scaffold( appBar: AppBar( title: Text('確認画面'), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Text(email), Text(phone), ], ), ), ); }
エラー
lib/main.dart:91:16: Error: The argument type 'int' can't be assigned to the parameter type 'String'. Text(phone),
int型の変数をクラス(NextPage)に呼び出す方法がわかりません。
どのように記述すればいいのか、、調べてもコードの書き方を見つけることができません。
どなたかご教示いただけますと助かります。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/24 07:43
2021/01/24 08:14