teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

操作ミスで途中で解答してしましました。。。

2019/12/21 18:04

投稿

Gonnnn
Gonnnn

スコア52

answer CHANGED
@@ -1,3 +1,12 @@
1
1
  まずif文はざっくり言うと同じ型のものでしか比較できません。
2
2
  if (questionImage == a)
3
+ ではImageViewと変数aを比較しているわけですが、そもそも変数aを宣言していないのでエラーになります。(ImageViewもそのものではなくidやtagで比較した方がいいかと。。。)
4
+ ここで比較する案をしてもいいのですが、a~zまでを比較しif文を繋げていくのは面倒ですよね。。。
5
+
6
+ 解決案としては思いつくのはMapを使う方法ですね。
3
- ImageViewと変数a
7
+ Map調べたら使い方は沢山でてきます。
8
+ それで正解画像のidをキーにしてSoundPlayerをオブジェクトにしたMapを作れば
9
+ map.get(questionImage.getId()).soumdPlay();
10
+ で再生できます。(プログラムを読んでいる感じだと、SoundPlayerは独自のクラスで、soundaPlay()~soundzPlayまで作るつもりなのだと思いますが、オブジェクト指向では、1つのSoundPlayerには1つの効果音を入れるのがいいと思います)
11
+
12
+ プログラムが分からないときは、処理を1行ずつ理解していきそのときのメソッドは何をしているのか調べ、そのときの変数はどういったものが入っているのかを調べ理解していけば、効率良く勉強出来ると思いますよ。