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;
}
};
일단 드래그 리스너 구동방식좀 알고싶어서
각 해당 이벤트마다 토스트를넣어서 확인해보려구 했는데
버튼 객체에 리스너 넣고 실험해보는데 버튼을 누르던 드래그하던 뭘하던 전혀반응이없습니다.
제가 생각하기엔 드래그 리스너를 버튼 뷰 에 넣었으니
드래그가 버튼안에들어가면 토스트가뜨고 나가면 토스트뜨고 그래야댈거같은데 안되네요.
제가 잘못 이해 하고있는건가요?