2017-02-28 13 views
-5

AndroidのonTouchEventのタッチポイントを含む特定の地域を確認しようとしています。最初は、以下のようにすべてのリージョンデータを配列に入れました。メソッドcontains(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)などのエラーを示して?なぜこれが起こるのですか? `:`用(regionlistリージョン結果) -

+1

に次のコード

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

を変更してください。 –

+0

'result'の型が' Object'で、 'Object'はメソッド' contains(int、int) 'がありません。[ここ](https://docs.oracle.com/javase/7/docs/api/) java/lang/Object.html?is-external = true)、タイプを修正するために使用する必要があります! –

+1

@MikeM。ありがとう。できます。 – isuru

答えて

2

あなたは `result`のための正しいタイプを使用する必要が

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

@isuru目盛りをクリックすることで、答えを確認できます。 – Nizam

関連する問題