Android ArrayList填充了最后一个元素数据

时间:2010-07-01 15:43:37

标签: android arraylist

我正在使用Android onTouchEvent来注册触摸和相关的移动。然后我想沿着那条路径迭代一个精灵。

我需要存储手指描绘的路径以供日后使用。

问题在于手指从屏幕上抬起后,ArrayList(pArray)完全填充了X& ACTION_UP坐标的Y位置。

从Log我可以看到它正在添加当前的X&当手指移动时Y位置到Arraylist很好但是Arraylist被Arraylist.size()中的数据覆盖 - 1 ...

有人可以提出建议。

public boolean onTouchEvent(MotionEvent event) {

  synchronized (mHeartbeat.getSurfaceHolder()) {

    getXX = event.getX();
    getYY = event.getY();

    pathArr.setX(getXX);
    pathArr.setY(getYY);

    pArray.add(pathArr);

    if (event.getAction() == MotionEvent.ACTION_DOWN) {

    } else if(event.getAction() == MotionEvent.ACTION_MOVE) {

    } else if(event.getAction() == MotionEvent.ACTION_UP) {

    }

    return true;
   }
 }

1 个答案:

答案 0 :(得分:0)

这是因为您没有创建新的pathArr变量,并且每次都向阵列添加相同的变量。它似乎也是一个实例字段。您需要将其更改为局部变量并为每个事件创建一个新变量。