ListView에서 KeyUp과 비슷한 이벤트 구현하는 방법

조회수 568회

ListView의 첫번째 Item에 Click Event를 KeyUp,Down 형식으로 만들 수는 없나요?

누르고 있는 동안에는 이런 이벤트, 그리고 손을 땟을때는 이런 이벤트

뭐 이런식으루요..

OnKey가 있길래 사용해보려고 봣는데

이건 리스트 뷰 전체에 포함인건지.. 제가 뭘 잘못한건지

잘안되더라구요..ㅠ

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • ListView가 어디의 ListView인지는 알려주셔야 할 것 같습니다. 안드로이드인지 C# 윈폼인지 WPF인지 뭔지.. 알 수 없는 사용자 2019.2.12 18:07
  • 아 그걸 적지 않았네요, 안드로이드 입니다! 알 수 없는 사용자 2019.2.13 09:11

1 답변

  • 어댑터의 뷰 홀더에서 원하시는 리스너, 예를 들어 View.OnKeyListner 인터페이스를 구현 하신다음에 해당 view 에 리스너를 설정해주시면 됩니다.

    class ItemViewHolder extends RecyclerView.ViewHolder implements View.OnKeyListener {
        private TextView mTableNumber;
    
        ItemViewHolder(@NonNull View itemView) {
            super(itemView);
            itemView.setOnKeyListener(this);
            mTableNumber = itemView.findViewById(R.id.text_table_check_table_no);
        }
    
        void bindViewHolder(TableCheck item) {
            String newline = "";
            StringBuilder sb = new StringBuilder();
            for(TableItem tableItem : item.getTableItemList()) {
                sb.append(newline).append('·').append(tableItem.getItemName());
                newline = "\n";
            }
            mTableNumber.setText(String.valueOf(item.getTableNo()));
        }
    
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
    
            return false;
        }
    }
    

    첫번째 아이템에만 리스너를 달고 싶다고 하셨는데 어댑터에서 뷰 홀더를 바인드 할 떄 포지션까지 파라미터로 전달해서, 뷰 홀더에 포지션 변수를 넣고 조건문으로 처리하면 될 것 같습니다.

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

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

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

(ಠ_ಠ)
(ಠ‿ಠ)