0

OnItemClickListener이 아닌 OnTouchListener을 사용하여 클릭하면 GridView 이미지 항목 리소스를 변경하는 데 문제가 있습니다. 내가 왜 OnItemClickListener을 사용하고 싶은 주된 이유는 클릭 한 항목의 position을 얻을 수 있다는 것입니다. position을 얻은 후에는 어떤 이미지를 변경할지 결정하는 데 사용합니다. 항목을 누르면 이미지 자원을 image2으로 변경하고 압축을 해제하면 image1으로 다시 변경합니다.OnItemClickListener를 사용하여 GridView 이미지 항목 리소스를 변경하는 방법은 무엇입니까?

OnTouchListener을 사용하는 것은 쉽지만 선택한 GridView 항목의 position을 가져올 수 없습니다.

+0

내 대답을 참조하고, 이것은 대단한 – Goofy

답변

1

이 시도 :

gridView.setOnTouchListener(new OnTouchListener() { 
      public boolean onTouch(View v, MotionEvent me) { 

       int action = me.getActionMasked(); // MotionEvent types such as ACTION_UP, ACTION_DOWN 
       float currentXPosition = me.getX(); 
       float currentYPosition = me.getY(); 
       int position = gridView.pointToPosition((int) currentXPosition, (int) currentYPosition); 

       // Access text in the cell, or the object itself 
       String s = (String) gridView.getItemAtPosition(position); 
       TextView tv = (TextView) gridView.getChildAt(position); 
     } 
    } 
+0

것을 시도,하지만 지금은 내 문제는 내가 이미지 뷰 리소스를 변경하고자하지만, 내가 사용하는 '이미지 뷰의 IV = (이미지 뷰) GRIDVIEW. 'Child'가 자식'ImageView'가 아닌'LinearLayout' 부모 였기 때문에 ClassCastException이 발생했습니다. 이 인스턴스에서 어떻게'ImageView' 자식을 얻을 수 있습니까? –

관련 문제