2010-07-01 48 views
1

我正在使用Android onTouchEvent註冊觸摸和關聯的移動。然後我想沿着這條路徑迭代一個精靈。Android ArrayList中填充了最後一個元素數據

我需要存儲手指跟蹤的路徑以備後用。

問題是,當手指離開屏幕後,ArrayList(pArray)完全填充了ACTION_UP座標的Y位置X &。

從日誌我可以看到,它正在添加當前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; 
    } 
} 

回答

0

這是因爲您沒有創建新的pathArr變量,並且每次都將相同的變量添加到數組中。它也似乎是一個實例領域。您需要將其更改爲本地變量併爲每個事件創建一個新變量。

+0

謝謝,它的工作原理。仍然有點困惑,因爲我會覆蓋每次pathArr的內容,然後複製到數組中,並不會創建一個新的pathArr只是吃內存? – Matt 2010-07-02 09:55:40

相關問題