質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.54%
Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

Q&A

1回答

504閲覧

Flutterにて複数の値を次の遷移画面に渡したい

yoshidaaa

総合スコア0

Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

0グッド

0クリップ

投稿2023/02/03 02:09

実現したいこと

Flutterにて複数の値を次の遷移画面に渡したい

前提

Flutterを学び始めて二日目です。
講義を受けながらAndroid Studioで勉強をしていたのですがその講義に答えもなく、自分で調べて行ってもうまくいかなかったため質問となります。

該当のソースコード

main.dart

1onTap: () { 2 Navigator.push(context, MaterialPageRoute( 3 builder: (context) => NextPage(title: titleList[index], user_id: 'aA111111!',))); 4 },

上記のNextPagの中に値を入れるのはわかるのですが、講義では「title:」「uer_id:」など指定をしていなかったのでここの必要不必要も知りたいです。

NextPage.dart

1class NextPage extends StatelessWidget { 2 final String title; 3 final String user_id; 4 const NextPage( {Key? key, required this.title, required this.user_id,}) : super(key: key);

上記で受け取り

NextPage.dart

1@override 2 Widget build(BuildContext context) { 3 return Scaffold( 4 appBar: AppBar( 5 title: Text(title), 6 ), 7 body: Padding( 8 padding: const EdgeInsets.all(50.0), 9 child: Column( 10 crossAxisAlignment: CrossAxisAlignment.start, 11 children: [ 12 Row( 13 children: const [ 14 SizedBox( 15 width: 30, 16 child: Text('ID')), 17 Text(':'), 18 Text(user_id),

一番最後の行のText(user_id),で表示をしたいのですがうまくいきません。
5行目にあるText(title)は問題なく表示されます。

補足情報(FW/ツールのバージョンなど)

Flutter Androd Studioなど最新のものです。

ご解答よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

実行可能なコードが無く「うまくいかない」の具体的な説明も無いので、うまくいかない原因を示すことはできませんが、とりあえず下記のコードで期待する挙動になると思いますので、参考にされてください。

「それはわかっているが自分のコードではうまくいかない」ということであれば
(1)実行可能な完全なコード(コンパイルエラーが出て実行不可能ならそのコード全体)を示す。
(2)「うまくいかない」という現象を具体的に説明する。
上記を行なってください。

NextPageのコンストラクタは名前付き引数を渡す定義になっています。
名前付き引数自体は必須ではない(呼び出し時に渡さなくてもよい)ですが、requiredを付けると必須(呼び出し時に渡さないとエラー)ということになります。
それにこの方法ではコンストラクタの引数として次のページに渡したい値を渡す方法なので、引数として渡さないと次のページに値を渡せない、ということになります。
繰り返しになりますがコード全体を見ないと原因が何かはわからないですね。

import 'package:flutter/material.dart'; void main() { runApp( MyApp(), ); } class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return MaterialApp( home: HomePage(), ); } } class HomePage extends StatelessWidget { const HomePage({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( body: Center( child: Column( children: [ Text('HomePage'), ElevatedButton( onPressed: () { Navigator.push( context, MaterialPageRoute( builder: (context) => NextPage( title: 'title', userId: 'aA1111112!', ), ), ); }, child: Text('Go to Next'), ), ], ), ), ); } } class NextPage extends StatelessWidget { const NextPage({ Key? key, required this.title, required this.userId, }) : super(key: key); final String title; final String userId; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(), body: Center( child: Column( children: [ Text('NextPage'), Text(title), Text(userId), ], ), ), ); } }

投稿2023/02/03 10:30

moriman

総合スコア615

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.54%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

同じタグがついた質問を見る

Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。