case R.id.nextbutton :
   nextbtn.setClickable(false);
   prevbtn.setClickable(false);
   nextbtn.setVisibility(View.INVISIBLE);
   prevbtn.setVisibility(View.INVISIBLE);
   mp[i].stop();  // 음성 끊고
   fl[i].setVisibility(View.INVISIBLE); // 화면 숨기고
   h.removeCallbacks(r1);
   if ( i < 11 ) {
    i = i + 1; // 페이지 카운터 올리고
    initialize(i); // 음성 초기화
    smiini(); // 넘어간 자막 다시 돌리고
    fl[i].setVisibility(View.VISIBLE); // 다음화면 꺼내고
    mp[i].start(); // 다음음성 재생하고
   }
   settime(i); // 자막 핸들러 시간설정
   h.postDelayed(r1, handletime);
   h.postDelayed(r2, 3000);
   if (menulayout.getVisibility() == View.VISIBLE) {
    menulayout.setVisibility(View.INVISIBLE);
   } break;
  case R.id.prevbutton :
   prevbtn.setClickable(false);
   nextbtn.setClickable(false);
   prevbtn.setVisibility(View.INVISIBLE);
   nextbtn.setVisibility(View.INVISIBLE);
   mp[i].stop(); // 음성 끊고
   fl[i].setVisibility(View.INVISIBLE); // 화면 숨기고
   h.removeCallbacks(r1);
   if ( i > 0 ) {
    i = i - 1; // 페이지 카운터 줄이고
    initialize(i);
    smiini(); // 넘어간 자막 다시 돌리고
    fl[i].setVisibility(View.VISIBLE); // 이전화면 꺼내고
    mp[i].start(); // 이전음성 재생하고
   }
   settime(i); // 자막 핸들러 시간설정
   h.postDelayed(r1, handletime);
   h.postDelayed(r2, 3000);
   if (menulayout.getVisibility() == View.VISIBLE) {
    menulayout.setVisibility(View.INVISIBLE);
   } break;





겉보기엔 잘 동작하는거 같은데
next든 prev든 둘중 한개의 버튼을 더도덜도말고 딱 4번만 누르면
nullpointerexception과 invocationtargetexception이 발생합니다.
원래는 mp[i].start(); 를
playsound(i); 라는 메소드로 사용했었는데요
(이 메소드 안에 코드는 mp[i].start(); 딱 한줄밖에 없었습니다.)
이걸 메소드 밖으로 빼서 걍 쓰니까 이러네요,....
고수분들의 조언 부탁드립니다 (__)
안드로이드펍 irc에서 동네북을 맡고있는 퐁퐁입니다.
iOS/Android/Python/PHP
타의로 배운 기술은 잘 까먹습니다.. ㅠㅠ