마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

초보) OnDragListener 작동원리 질문입니다.

0 추천
        btnTarget = (Button)findViewById(R.id.target);
        btnTarget.setOnDragListener(mDragListener);

}
    View.OnDragListener mDragListener = new View.OnDragListener() {

        @Override
        public boolean onDrag(View v, DragEvent event) {
            // TODO Auto-generated method stub

            //이벤트를 받음
            switch(event.getAction()){

                //드래그가 시작되면
                case DragEvent.ACTION_DRAG_STARTED:
                    //클립 설명이 텍스트면
                    Toast.makeText(DragButton.this, "Drag 시작",Toast.LENGTH_SHORT).show();
                    return true;

                    //드래그가 뷰의 경계안으로 들어오면
                case DragEvent.ACTION_DRAG_ENTERED:
                    Toast.makeText(DragButton.this, "Drag가 뷰의 경계안에 들어오면",Toast.LENGTH_SHORT).show();
                    return true;

                //드래그가 뷰의 경계밖을 나가면
                case DragEvent.ACTION_DRAG_EXITED:
                    Toast.makeText(DragButton.this, "Drag가 뷰의 경계 밖을 나가면",Toast.LENGTH_SHORT).show();
                    return true;

                //드래그가 드롭되면
                case DragEvent.ACTION_DROP:
                    Toast.makeText(DragButton.this, "Drag가 Drop되면",Toast.LENGTH_SHORT).show();
                    return true;

                //드래그 성공 취소 여부에 상관없이 모든뷰에게
                case DragEvent.ACTION_DRAG_ENDED:
                    if(event.getResult()){//드래그 성공시
                        Toast.makeText(DragButton.this, "Drag & Drop 완료",Toast.LENGTH_SHORT).show();
                    }else{//드래그 실패시
                        Toast.makeText(DragButton.this, "Drag & Drop 실패",Toast.LENGTH_SHORT).show();
                    }
                    return true;
            }
            return true;
        }
    };

 

일단 드래그 리스너 구동방식좀 알고싶어서 

각 해당 이벤트마다 토스트를넣어서 확인해보려구 했는데

 

버튼 객체에 리스너 넣고 실험해보는데 버튼을 누르던 드래그하던 뭘하던 전혀반응이없습니다.

 

제가 생각하기엔 드래그 리스너를 버튼 뷰 에 넣었으니 

드래그가 버튼안에들어가면 토스트가뜨고 나가면 토스트뜨고 그래야댈거같은데 안되네요.

 

제가 잘못 이해 하고있는건가요?

라이어드 (120 포인트) 님이 2019년 1월 28일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...