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

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

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

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

Dart

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

Q&A

解決済

1回答

758閲覧

[flutter] ドロップダウンリストで選択した値の取得をしたいが、ビルドが通らない

ouma

総合スコア15

Flutter

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

Dart

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

0グッド

0クリップ

投稿2022/09/13 14:39

実現したいこと

ドロップダウンリストで選択した値を取得したい

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

Conditions must have a static type of 'bool'.

と表示されておりビルドが通らない

該当のソースコード

dart

1import 'package:flutter/material.dart'; 2 3void main() { 4 runApp(const MyApp()); 5} 6 7class MyApp extends StatelessWidget { 8 const MyApp({Key? key}) : super(key: key); 9 10 11 Widget build(BuildContext context) { 12 return MaterialApp( 13 title: 'Flutter Demo', 14 theme: ThemeData( 15 16 primarySwatch: Colors.blue, 17 ), 18 home: const MyHomePage(title: 'Flutter Demo Home Page'), 19 ); 20 } 21} 22 23class MyHomePage extends StatefulWidget { 24 const MyHomePage({Key? key, required this.title}) : super(key: key); 25 26 27 final String title; 28 29 30 State<MyHomePage> createState() => _MyHomePageState(); 31} 32 33 34 35 36class _MyHomePageState extends State<MyHomePage> { 37 int _counter = 0; 38 39 String? isSelectedItemhourB; 40 41 42 Widget DropMenuCreateHourB() { 43 return DropdownButton( 44 items: [ 45 DropdownMenuItem( 46 child: Text('09'), 47 value: '09B', 48 ), 49 DropdownMenuItem( 50 child: Text('10'), 51 value: '10B', 52 ), 53 DropdownMenuItem( 54 child: Text('11'), 55 value: '11B', 56 ), 57 DropdownMenuItem( 58 child: Text('12'), 59 value: '12B', 60 ), 61 DropdownMenuItem( 62 child: Text('13'), 63 value: '13B', 64 ), 65 DropdownMenuItem( 66 child: Text('14'), 67 value: '14B', 68 ), 69 DropdownMenuItem( 70 child: Text('15'), 71 value: '15B', 72 ), 73 ], 74 onChanged: (String? value){ 75 setState((){ 76 isSelectedItemhourB = value; 77 }); 78 }, 79 value: isSelectedItemhourB, 80 ); 81 } 82 83 84 Widget build(BuildContext context) { 85 86 return Scaffold( 87 appBar: AppBar( 88 89 title: Text(widget.title), 90 ), 91 body: Column( 92 children: [ 93 Center( 94 child: DropMenuCreateHourB(), 95 ), 96 Text(isSelectedItemhourB?), 97 ], 98 )// This trailing comma makes auto-formatting nicer for build methods. 99 ); 100 } 101}

試したこと

グローバル変数にする
?をはずしてみる

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

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

Text(isSelectedItemhourB?),この部分が、condition ? expr1 : expr2という条件式として認識されているからです。isSelectedItemhourBは文字列なので条件に合ってないということになります。

この場合だとText(isSelectedItemhourB??""),かな。
isSelectedItemhourBがnullの場合、""を割り当てるといった感じになる。

nullなオブジェクトのメンバーアクセスの方法として、?.?[]という使用方法があるけど、それと混同しているのかな。

投稿2022/09/13 23:04

ta.fu

総合スコア1664

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問