2014-01-08 3 views
1

image1을 image6으로 표시하려고 할 때 이전 버튼에 오류가 발생했습니다. 오류가 표시됩니다. ArrayIndexOutOfBoundsException : length = 6; index = -1 이전 버튼이 이미지 1로 올 때 설정하는 방법 1 이미지 6을 표시하지 않으려면 아무 것도하지 않으시겠습니까? 여기 다음/이전 버튼 슬라이드 이미지

내 코드

public class MainActivity extends Activity { 
Intent i; 
private int mNekiPhotoIndex =0; 
private int[] mSlikeID = new int[] { R.drawable.pic, 
     R.drawable.pic1, R.drawable.pic2, R.drawable.pic3, 
     R.drawable.pic4, R.drawable.ic_launcher, }; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    showPhoto(mNekiPhotoIndex); 



    // 'Next' button. 
     Button nextButton = (Button) findViewById(R.id.next_button); 
     nextButton.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 

       mNekiPhotoIndex = (mNekiPhotoIndex + 1) 
         % mSlikeID.length; 
       showPhoto(mNekiPhotoIndex); 
      } 
     }); 
    // 'Prev' button. 
     Button prevButton = (Button) findViewById(R.id.prev_button); 
     prevButton.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       mNekiPhotoIndex = (mNekiPhotoIndex - 1) 
         % mSlikeID.length; 
       showPhoto(mNekiPhotoIndex); 
      } 
     }); 

} 
@Override 
protected void onSaveInstanceState(Bundle outState) { 
    outState.putInt("photo_index", mNekiPhotoIndex); 
    super.onSaveInstanceState(outState); 
} 
@Override 
protected void onRestoreInstanceState(Bundle savedInstanceState) { 
    mNekiPhotoIndex = savedInstanceState.getInt("photo_index"); 
    showPhoto(mNekiPhotoIndex); 
    super.onRestoreInstanceState(savedInstanceState); 
} 

private void showPhoto(int PhotoIndex) { 

    // TODO Auto-generated method stub 
    ImageView imageView = (ImageView) findViewById(R.id.image_view); 
    imageView.setImageResource(mSlikeID[PhotoIndex]); 
} 

}

답변

4
mNekiPhotoIndex = ((mNekiPhotoIndex - 1) >= 0 ? (mNekiPhotoIndex - 1) : 0) % mSlikeID.length; 
+0

가 작동입니다 감사합니다 – ArmsOP