Android ListView에서 Touch에 대한 이벤트를 개별 항목에 적용하려면 어떻게 해야하나요?

조회수 1209회

ListView의 OnTouch에 대해서인데요 ListView의 항목이 10개가 있다고 했을 때, 그중 1번째 Position으로는 0번의 항목에만 이 터치 down,up 이벤트를 적용 시키려면 어떻게 해야하나요?

현재는 아래와 같습니다.


        _IA_List.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                switch (position)
                {
                    case 0 :
                        OFF_Event();
                        break;

                    case 1 :
                        break;

                    case 2 :
                        break;

                    case 3 :
                        break;

                    case 4 :
                        break;

                    case 5 :
                        break;

                    case 6 :
                        break;

                    case 7 :
                        break;

                    case 8 :
                        break;

                    case 9 :
                        break;
                }
            }
        });
  public static void OFF_Event()
    {
        _IA_List.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch(event.getAction())
                {
                    case MotionEvent.ACTION_DOWN :
                        Toast.makeText(RadarMainActivity.instance, "+++++++++++++++a", Toast.LENGTH_SHORT).show();
                        break;

                    case MotionEvent.ACTION_UP :
                        Toast.makeText(RadarMainActivity.instance, "+++++++++++++++b", Toast.LENGTH_SHORT).show();
                        break;

                }
                return false;
            }
        });
    }

현재 이렇게 해두었는데, 나머지 ListView의 항목들도 같은 이벤트를 불러옵니다.

최종적으로 하려는 것은

1번째 ListView의 항목에 꾹 누르고 있을 때의 이벤트를 넣고 싶은 겁니다. 다른 애들은 건들지 않고 1번 항목에만 꾹 누르고 있는 동안 어떠한 이벤트를 가져오고 손을 땟을 때는 그 이벤트가 중단되도록 하고 싶습니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

    파라미터로 넘어온 view에 이벤트리스너를 등록해주면될것같네요 OFF_Event에 해당 View를 파라미터로 넘겨주고

    OFF_Event(View view);

    view.setOnTouchListener{} 요래 해보세요. 이렇게하면 리스트뷰 여러 아이템중 해당 VIew에만 리스너를 등록할 것 같네요

    _IA_List.setOnTouchListener 이렇게하면 리스너 전체에 Touch리스너를 등록하는 꼴이됩니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)