2017-02-28 44 views
-5

我試圖檢查特定區域在Android中包含觸摸點onTouchEvent。最初我把我所有的區域數據放在數組中,如下所示。無法解析的方法包含(int,int)?

ArrayList<Region> regionlist = new ArrayList<>(); 

RectF rectF = new RectF(); 
path.computeBounds(rectF, true); 
r = new Region(); 
r.setPath(path, new Region((int) rectF.left, (int) rectF.top, (int) rectF.right, (int) rectF.bottom)); 
regionlist.add(r); 

這是我的onTouchEvent

public boolean onTouchEvent(MotionEvent event) { 

    Point point = new Point(); 
    point.x = (int) event.getX(); 
    point.y = (int) event.getY(); 
    invalidate(); 
    Log.d(TAG, "point: " + point); 


    for(Object result : regionlist) { 
     Log.d("isuru", "Bucha " + result); 
     if(result.contains(point.x, point.y)) { //Error Line 
      Log.d(TAG, "Touch IN"); 
     }else { 
      Log.d(TAG, "Touch OUT"); 
     } 

    } 
    return true; 

} 

正如我在我的代碼contains何況顯示誤差Cannot resolve method contains(int, int)?爲什麼會發生?

+1

您需要使用正確類型'result' - '爲(地區結果:regionlist)'。 –

+0

'result'的類型爲Object,Object'沒有方法'contains(int,int)'check [here](https://docs.oracle.com/javase/7/docs/api/ java/lang/Object.html?is-external = true),您需要使用正確的類型! –

+1

@MikeM。謝謝。有用。 – isuru

回答

2

請下面的代碼

for(Object result : regionlist) { 
//code 
} 

改變

for(Region result : regionlist) { 
//code 
} 
+0

@isuru您可以通過點擊勾號來驗證答案。 – Nizam

相關問題