android - 我如何处理数组索引越界?

标签 android arrays indexoutofboundsexception

我在 GridView 中有一个图像列表。当我单击图像时,它会以全屏模式显示,并通过触摸将一个图像更改为另一个图像,只是增加位置。这是 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; 
    }
}); 

在最后一张图片中,它显示错误“它已意外停止”。我该如何处理索引绑定(bind)数组?

最佳答案

您正在尝试获取不在您的数组中的索引。您的位置必须小于 array.length

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

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

                 }
               }

关于android - 我如何处理数组索引越界?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10816106/

相关文章:

java - 尝试使用软编码(基于输入的数组大小)制作掷骰子java应用程序,得到ArrayIndexOutOfBoundsException

java - 崩溃 onLocationChanged() Android

java - 创建子数组时出错

java - HashMap 为空

java - 当我删除 JTable 行时,为什么会收到 ArrayIndexOutOfBoundsException?

java - 返回数组中的最大值?

android - 将项目添加到回收站 View ?

Java - 多个返回语句 - 第一个不返回?

android - 在android 2.3之前的平台上如何使用android 4.0新增的Animator框架?

java - 解析额外的字符串以检查数据