ListView의 메뉴중에

조회수 660회

ListView의 메뉴가

" A ", " B ", " C " , " D " 가 있을 때, 나머지는 그렇다치고 "D"에 대한 터치 이벤트에 제한을 걸고 싶습니다

예를 들어,

홈키를 누르면서 Menu 키를 5번 눌러야 메뉴가 활성화 된다 라는 제한을 걸려면 어떤식으로 걸어야하나요?

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 정확히 터치이벤트가 아니고 키이벤트에 대해서 핸들링 하고 싶으신건가요? onKeyEvent 를 override 하여 적절히 구현할수 있겠으나 Home key event 는 어플리케이션에 전달 되지 않습니다. 알 수 없는 사용자 2018.7.12 11:04
  • 음 정확히 말하면 뭐라고 해야할까요.. 그러니까 D의 항목자체를 막아버리는거죠.. ListView 자체의 이벤트가 아닌 ListView의 항목중에 D라는 항목를 아예 조건부 형식으로만 열리도록.. 그 조건을 달성하지 않으면 아예 항목 자체의 터치를 막는.. 알 수 없는 사용자 2018.7.12 11:46

1 답변

  • 말씀하신 조건에 대한 여부를 boolean 으로 저장하고 있다는 가정하에,

    boolean isActivation;
    
    view.setOnClickListener(new View.OnClickListener{
        @Override
         public void onClick(View v){
             if(!isActiovation) return;
            //do something
        }
    });
    

    위와같이 구현할수 있습니다. ClickListener 를 달지 않거나 touchEvent 자체를 막는 방법도 생각해볼수 있습니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 막는 방법에 대해서 알려주셔서 감사합니다! 이걸 Xamarin으로 바꾸는 과정에서 힘들어서 물어본건데 일단 그건 제가 한번 해보겠습니다! 그런데 문제는 "홈키를 누르면서 Menu 키를 5번 눌러야 메뉴가 활성화 된다" 이 부분입니다. 버튼을 5번 눌렀다는 건 어떻게 표현해야할까요? 알 수 없는 사용자 2018.7.12 13:08
    • 홈키는 말씀드렸다시피 이벤트 제어 불가능합니다. userVisibleHint 등으로 홈키가 눌렸다 라는 것을 유추 할수있는 다른방법이 있긴한데, 이것은 이미 홈키가 눌린 후 동작이 된 상태의 콜백이라 무의미 할것 같구요.. 하드키를 말씀하시는 거라면 onKeyEvnet 를 override 하여 원하는 키가 눌렸을떄 count 를 해서 count 가 5가 되면 메뉴를 활성화 시키면 됩니다. 알 수 없는 사용자 2018.7.12 13:16
    • 아 하드키 맞습니다. Count를 따로 정의해 주면 되는건가요? 알 수 없는 사용자 2018.7.12 14:26
    • 네 count 변수를 하나두고 해당 키가 눌렸을떄 카운트 해주는식으로 처리하시면 될 것 같습니다 알 수 없는 사용자 2018.7.12 15:25
    • 네 한번 도전해보겠습니다! 감사합니다! 알 수 없는 사용자 2018.7.12 15:49

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

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

(ಠ_ಠ)
(ಠ‿ಠ)