我的枚举声明:
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];
}
}
每当我调用这两种方法中的任何一种时,我的应用程序都会崩溃。这是我称呼它们的地方:
public void ChangeSound(View v) {
note = note.getNext();
tvSounds.setText(note.toString(note));
}
ChangeSound() 是按钮的 onClick 方法。如果我删除 ChangeSound() 中的两行,代码会正常工作,但如果这两行中的任何一行都在其中,则应用程序会在单击按钮时崩溃。任何想法为什么?提前致谢!!
EDIT** note 是 Note 类型的变量
谢谢大家!它返回 null (看看 Jason C 的答案(我的评论))。所有这些对我都有帮助!