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

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

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

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

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Android Studio

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

Dart

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

Q&A

1回答

2124閲覧

FlutterのDropDownButton(DropdownMenuItem)の選択した値の画面遷移の値渡しについて教えてください

omochi0613

総合スコア0

Flutter

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

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Android Studio

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

Dart

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

0グッド

0クリップ

投稿2021/04/27 14:20

編集2021/04/27 14:26

前提・実現したいこと

Flutterどころかプログラミングについてかなりの初心者です。

FlutterでDropdownButtonでプルダウンリストを作成したのですが、選択した値を次の画面に渡す方法が分からないので教えてほしいです。

以下のコードでnextPage.dartに遷移した時に「選択肢1」を選択していたら「text: hogehoge」と入力したらその部分に「選択肢1」と表示させたいです。
また、可能であればnextPageに渡せた値の変数?引数?配列?をどこかから確認できる方法があれば合わせて教えていただきたいです。

発生している問題・エラーメッセージ

エラーメッセージは表示されていません。

該当のソースコード

Main.dart

Flutter

1 2class MainDispay extends StatefulWidget{ 3 @override 4 _MainDispayState createState() => _MainDispayState(); 5} 6 7class _MainDispayState extends State<MainDispay>{ 8 9 List<DropdownMenuItem<int>> _items = List(); 10 int _selectItem = 0; 11 12 @override 13 void initState(){ 14 super.initState(); 15 setItems(); 16 _selectItem = _items[0].value; 17 } 18 19 void setItems(){ 20 _items 21 ..add(DropdownMenuItem( 22 child: Text('選択肢1'), 23 value: 1, 24 25 )) 26 ..add(DropdownMenuItem( 27 child: Text('選択肢2'), 28 value: 2, 29 )); 30 } 31 @override 32 Widget build(BuildContext context) { 33 return Scaffold( 34 body: Center( 35 child: Column( 36 mainAxisSize: MainAxisSize.min, 37 children:[ 38 DropdownButton( 39 items: _items, 40 value: _selectItem, 41 onChanged: (value) => { 42 setState((){ 43 _selectItem = value; 44 }), 45 }, 46 ), 47 SizedBox( 48 child: RaisedButton( 49 onPressed:(){ 50 Navigator.push( 51 context, 52 MaterialPageRoute( 53 builder: (context) => nextPage( 54 watashitai: _selectItem(value); //ここで選択したプルダウンの値を次画面へ渡したい 55 ), 56 ), 57 ); // Navigator 58 }, // onPressed 59 ), 60 ), 61 ] //children 62 ), 63 ), 64 ); 65 } 66}

nextPage.dart

Flutter

1class nextPage extends StatefulWidget{ 2 3 final String watashitai; 4 5 const nextPage({ 6 Key key, 7 this.watashitai, 8 }) : super(key : key); 9 10 @override 11 _nextPageState createState() => _nextPageState( 12 watasareta: watashitai 13 ); 14} 15class _nextPageState extends State<nextPage>{ 16 final String watashitai; 17 18 _nextPageState({ 19 this.watashitai, 20 }); 21 22~~以下省略~~ 23

試したこと

Navigator.pushの値を渡すところで「selectItem.value」や「_items.value」はダメでした。
またtextFieldの「controller」は使えるのか?と思い、試してみましたがそれも当然ながらダメでした。

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

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

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

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

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

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

guest

回答1

0

_selectItemには、DropdownMenuItemvalueが入るので、
DropdownMenuItemvalueに入れたい値を設定すればよいのではないかと。

dart

1 List<DropdownMenuItem<String>> _items = List(); // int -> String 2 String _selectItem = ''; // int -> String 3~~ 4 void setItems(){ 5 _items 6 ..add(DropdownMenuItem( 7 child: Text('選択肢1'), 8 value: '選択肢1', 9 10 )) 11 ..add(DropdownMenuItem( 12 child: Text('選択肢2'), 13 value: '選択肢1', 14 )); 15 }

また、可能であればnextPageに渡せた値の変数?引数?配列?をどこかから確認できる方法があれば合わせて教えていただきたいです。

widget.watashitaiで参照できます。

dart

1class nextPage extends StatefulWidget{ 2 3 final String watashitai; 4 5 const nextPage({ 6 Key key, 7 this.watashitai, 8 }) : super(key : key); 9 10 11 _nextPageState createState() => _nextPageState(); 12} 13 14class _nextPageState extends State<nextPage> { 15 16 Widget build(BuildContext context) { 17 return Text(widget.watashitai); // [widget]が[nextPage]のインスタンス変数になっている 18 } 19}

投稿2021/04/28 09:23

satokei

総合スコア1204

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

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

omochi0613

2021/04/29 13:51

ご回答ありがとうございます。 上記で試してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問