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

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

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

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

Dart

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

Q&A

解決済

2回答

1622閲覧

Flutter DropdownButtonのTextを取得する方法を教えてください。

gream

総合スコア6

Flutter

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

Dart

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

0グッド

0クリップ

投稿2022/06/09 06:25

ドロップダウンのvalue(1,2,3)ではなく、Text(a,b,c)を取得する方法を教えてください。
valueは以下のように取得しています。

Dart

1DropdownButton( 2 items: const [ 3 DropdownMenuItem( 4 child: Text('a'), 5 value: '1', 6 ), 7 DropdownMenuItem( 8 child: Text('b'), 9 value: '2', 10 ), 11 DropdownMenuItem( 12 child: Text('c'), 13 value: '3', 14 ), 15 ], 16 onChanged: (String? value) { 17 setState(() { 18 isSelectedItem = value; 19 }); 20 }, 21 value: isSelectedItem, 22),

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

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

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

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

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

guest

回答2

0

ご回答ありがとうございます。
プログラミングを初心者で、DropdownButtonの記述が変わり混乱しています。
ご教示いただきましたコードでは、どの部分でchild: Textを取得しておりますか。
child: Textを取り出す目的は、valueはある文字列に代入した後に別処理で使用し、child: TextはList Cardのtitleに表示させる為です。

投稿2022/06/10 04:44

gream

総合スコア6

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

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

ta.fu

2022/06/10 06:46

回答に対してのコメントであれば、その回答のコメント欄に記入したほうが良いです。 回答はあくまで質問に対しての回答を記入する場所なので。 後、提示できる情報は過不足なく質問欄に記載してください。 回答者は質問内容に記載されている内容のみで回答を書くしかないので。 言葉のキャッチボールをして、本当の目的を探るという無駄な行為をしなくても良くなります。 今回の場合は、DropdownButtonとその設定内容を反映させたいというList Card部分かな。 回答すると、isSelectedItemに入っている文字列が"1", "2", "3"なので、それと比較してTextに入れる文字列を"a","b","c"を入れればいいのではないか。ということになると思います。
gream

2022/06/10 07:22

返信の仕方に誤りがあり申し訳ございません。 当サイトを初めての利用したので、ご教示いただきありがとうございます。 >それと比較してTextに入れる文字列を"a","b","c"を入れればいいのではないか。 Textに"a","b","c"を入れるにはどのようにコードを記述すれば良いでしょうか。 至らない点が多く大変申し訳ございません。 何卒よろしくお願い申し上げます。
guest

0

ベストアンサー

onchangedを以下の様にして、Card listの方はText(displayText)とすることで、onchangedの中でTextで表示する文字列を作成するという方法はどうでしょうか。

dart

1 onChanged: (String? value) { 2 setState(() { 3 isSelectedItem = value!; 4 switch (isSelectedItem) { 5 case '1': 6 displayText = 'a'; 7 break; 8 case '2': 9 displayText = 'b'; 10 break; 11 case '3': 12 displayText = 'c'; 13 break; 14 } 15 }); 16 },

ーーーー修正前回答

dart

1 DropdownButton<Text>( 2 value: isSelectedItem, 3 items: const [ 4 DropdownMenuItem<Text>( 5 child: Text("a"), 6 value: Text("a"), 7 ), 8 DropdownMenuItem<Text>( 9 child: Text("b"), 10 value: Text("b"), 11 ), 12 DropdownMenuItem<Text>( 13 child: Text("c"), 14 value: Text("c"), 15 ), 16 ], 17 onChanged: (value) { 18 setState(() { 19 isSelectedItem = value!; 20 }); 21 })

なお、上のやり方だと初期値は未選択状態(null)になってしまう。

初期値を指定したい場合は、以下の様にitemsの中身を別途用意しておき、初期値をその用意した中のvalueを使うようにする必要があるみたい。

dart

1 Text? isSelectedItem; 2 List<DropdownMenuItem<Text>> get values => const [ 3 DropdownMenuItem<Text>( 4 child: Text("hoge"), 5 value: Text("hoge"), 6 ), 7 DropdownMenuItem<Text>( 8 child: Text("hage"), 9 value: Text("hage"), 10 ), 11 DropdownMenuItem<Text>( 12 child: Text("dummy"), 13 value: Text("dummy"), 14 ), 15 ]; 16中略 17 Widget build(BuildContext context) { 18 isSelectedItem= isSelectedItem?? values[0].value; 19中略 20 DropdownButton<Text>( 21 value: isSelectedItem, 22 items: values, 23 onChanged: (value) { 24 setState(() { 25 isSelectedItem= value!; 26 }); 27 }) 28 29

最後に、Text(a,b,c)を取り出す目的は?

もし、選択されたテキスト中の文字を使い他のTextに設定する文字にしたいというのであれば、valueをa,b,cにして、表示させたい場所ではText(isSelectedItem)と実装したほうが良いと思う。

投稿2022/06/09 09:11

編集2022/06/10 08:59
ta.fu

総合スコア1664

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

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

gream

2022/06/12 11:46

親身になってご回答くださり、誠にありがとうございます。 もう少し別の方法も検討してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問