如何处理数组索引超出范围?

时间:2012-05-30 12:16:38

标签: android arrays indexoutofboundsexception

我在网格视图中有一个图像列表。当我点击它以全屏心情显示的图像时,触摸将一个图像更改为另一个图像,只是增加位置。这是onTouchListener的代码

private int position=0;
imageView.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event)   
    {  
        if(event.getAction() == MotionEvent.ACTION_DOWN)  
        {  
              position++;
              if( v == findViewById( R.id.full_image_view ))   
              { 
                   imageView.setImageResource(imageAdapter.mThumbIds[position]);
              }
        }
        return false; 
    }
}); 

在最后一个图像中,它显示“它已意外停止”的错误。我如何处理索引绑定数组?

2 个答案:

答案 0 :(得分:4)

您尝试获取不在您的数组中的索引。您的position must be less than array.length

 if( v == findViewById( R.id.full_image_view ))
              {
                  if(position < imageAdapter.mThumbIds.length){

                    imageView.setImageResource(imageAdapter.mThumbIds[position]);

                 }
               }

答案 1 :(得分:0)

在尝试访问数组中的元素之前,检查索引是否有效(在0array.size - 1之间)。