2010-07-26 4 views
0

내 응용 프로그램에는 세 페이지 (세 개의 탭)가 있으며 가로로 손가락을 움직여 두 개의 gridview 사이를 전환하고 싶습니다. 터치 코드는 정상적으로 작동하지만 더 이상 그리드 항목을 클릭 할 수 없습니다! onItemClickListener (onClickListener는 Gridview에서 작동하지 않음) 메서드를 사용하지만 그리드 항목은 클릭되지 않습니다. 도움 주셔서 감사합니다.안드로이드, GridView 및 onTouchListener

코드는 다음과 같습니다

myGrid.setOnTouchListener(this); 
myGrid.setOnItemClickListener(this); 
.... 

public boolean onTouch(View v, MotionEvent event) { 
    int eventaction = event.getAction(); 
    switch (eventaction) { 
    case MotionEvent.ACTION_DOWN: 
     xStart = event.getX(); 
     break; 
    case MotionEvent.ACTION_UP: 
     xEnd = event.getX(); 

     if (xEnd - xStart > 20){ 

      //switch to previous tab 
     } 
     if (xEnd - xStart < -20){ 
      //switch to next tab 
     } 
     return true; 
    default: 
     break; 
    } 
    return true; 
} 

답변

1

어떤 뷰에서 onTouch 코드이다? 마지막으로 return truereturn false으로 변경해보십시오. 그러면 동작이 모션 이벤트가 아니기 때문에 이벤트가 뷰에서 사용되지 않도록 할 수 있습니다.

+0

정말 고마워요! 그것은 지금 잘 작동합니다! –

+0

false를 반환하도록 설정했지만 작동하지 않습니다. –