私の列挙宣言:
public enum Note { A, A_SHARP, B, C, C_SHARP, D, D_SHARP,
E, F, F_SHARP, G, G_SHARP;
public String toString(Note note) {
if (note == Note.A)
return "A";
else if (note == Note.A_SHARP)
return "A#";
else if (note == Note.B)
return "B";
else if (note == Note.C)
return "C";
else if (note == Note.C_SHARP)
return "C#";
else if (note == Note.D)
return "D";
else if (note == Note.D_SHARP)
return "D#";
else if (note == Note.E)
return "E";
else if (note == Note.F)
return "F";
else if (note == Note.F_SHARP)
return "F#";
else if (note == Note.G)
return "G";
else if (note == Note.G_SHARP)
return "G#";
else
return "";
}
public Note getNext() {
int index = ordinal();
index++;
if (index > values().length)
return values()[0];
else
return values()[index];
}
}
これら 2 つのメソッドのいずれかを呼び出すたびに、アプリがクラッシュします。ここで私はそれらを呼び出します:
public void ChangeSound(View v) {
note = note.getNext();
tvSounds.setText(note.toString(note));
}
ChangeSound() は、ボタンの onClick メソッドです。ChangeSound() の両方の行を削除すると、コードは正常に機能しますが、2 行のいずれかがそこにあると、ボタンのクリック時にアプリがクラッシュします。理由はありますか?前もって感謝します!!
EDIT** note は型 Note の変数です
みんなありがとう!null を返していました (Jason C の回答 (私のコメント) を見てください)。これはすべて私にとって役に立ちました!