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

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

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

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

Dart

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

Q&A

解決済

1回答

2796閲覧

flutter ラジオボタンの選択状況を変数に代入したい

otai0811

総合スコア17

Flutter

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

Dart

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

0グッド

0クリップ

投稿2020/07/07 11:59

編集2020/07/07 19:07

2択のラジオボタンを作った時にその選択状況を変数に代入する(例えば、男性と女性の2択のラジオボタン を作ったとして、男性が選択されたら、男性という結果を用意した変数に代入するということはできますでしょうか?
以下にコードの一部を記載します。
超初心者ながら、自分としては、groupValue辺りをいじれば良いのではと思ったのですが、実装方法がわかりませんでした。

enum gender { male, female gender _gender = gender.male; Row( children: <Widget>[ Text('性別'), Radio( value: gender.male, groupValue: _gender, onChanged: (gender value) { setState(() { _gender = value; }); }, ), Text('男性'), Radio( value: gender.female, groupValue: _gender, onChanged: (gender value) { setState(() { _gender = value; }); }, ), Text('女性') ], ),

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

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

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

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

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

guest

回答1

0

ベストアンサー

質問の内容「男性が選択されたら、男性という結果を用意した変数に代入するということはできますでしょうか?」は、提示されたコードで既に出来ています

onChanged: (gender value) { setState(() { _gender = value; }); },

例えば、男性というボタンが選択された瞬間に「男性(gender.male)という結果」が_gender変数(用意した変数)に代入されます。
質問の意図はまた別でしょうか。。?

追記

_genderは gender型の定数値です。
enumはDartに限った機能ではなく、一般的にコードの見通しをよくしたり、バグやタイプミスを減らすメリット等があります。
Dart列挙型
Enumの特徴や使い方や文字列に変換する方法についてまとめてみた

男の方が選択されていたら、この人は男です。女の方が選択されていたら、この人は女です。と画面に表示する
やり方はいろいろ考えられますので、一例を下記に記載します。

Text((() { switch (_gender) { case gender.male: return 'この人は男です。'; case gender.female: return 'この人は女です。'; } }()))

三項演算子バージョン(このような書き方が嫌いな人もいるのでチームで開発するときは要注意)

Text(_gender == gender.male ? 'この人は男です。' : 'この人は女です。')

投稿2020/07/07 14:05

編集2020/07/07 22:45
Kapustin

総合スコア1186

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

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

otai0811

2020/07/07 19:07

回答ありがとうございます! 私の質問に何度も対応してくださり感謝しかありません。いつもありがとうございます。 言葉足らずで申し訳ありません。 確かにこの_genderにはgender.maleと言う値が入っているのですが、型がStringではない(なんの型なのか分からない)ので、うまくいきません。 私としては、男の方が選択されていたら、この人は男です。女の方が選択されていたら、この人は女です。 と画面に表示する仕様を作りたいのですが、_genderの型がよく分からないため、for文を使ってこれを作ろうとしても、_genderはStringではありません。とエラーが出てしまいます。
otai0811

2020/07/08 14:14

ご回答頂きありがようございます! Enumが使われていたからと言うことですね。リンク先の記事も読み、String型に変更する方法なども知ることができました。 この度はご回答頂きありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問