데이터 구조를 좀 변경해 보세요.
public enum AnimalType {
LION(R.drawalbe.사자, 1, 1, AnimalType.CAT),
CAT(R.drawalbe.고양이, 2, 1, AnimalType.DOG),
DOG(R.drawalbe.강아지, 3, 1, AnimalType.CHICKEN),
CHICKEN(R.drawalbe.닭, 4, 1, AnimalType.LION);
private final int drawableResId;
private final int songIndex;
private final int playSpeed;
private final AnimalType next;
public AnimalType(int drawableResId, int songIndex, int playSpeed, AnimalType next) {
this.drawableResId = drawableResId;
this.songIndex = songIndex;
this.playSpeed = playSpeed;
this.next = next;
}
public int getDrawableResId() {
return drawableResId;
}
public int getSongIndex() {
return songIndex;
}
public int getPlaySpeed() {
return playSpeed;
}
public AnimalType getNext() {
return next;
}
}
private int AnimalType currentAnimalType = null;
findViewById(R.id.change).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (currentAnimalType == null) {
currentAnimalType = AnimalType.LION;
} else {
currentAnimalType = currentAnimalType.getNext();
}
ImageView.setImageResource(currentAnimalType.getDrawableId());
});
findViewById(R.id.SoundButton).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (currentAnimalType == null) {
displayMessage("Please select animal to play");
return;
}
soundManager.playByAnimalType(currentAnimalType);
}
);
class SoundManager {
public void playByAnimalType(AnimalType animalType) {
playSound(animalType.getSongIndex(), animalType.getPlaySpeed());
}
private void playSound(int songIndex, int playSpeed) {
...
}
}