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

onTouchEvent()와 onClick 같이 사용할 수 있나요?

0 추천
public class BoardPhotoShooting extends Activity {
 MoveObject moveImage;
 
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.board_photo_shooting);

  moveImage= new MoveObject(BoardPhotoShooting.this, screenWidth,
    screenHeight, boardWidth, boardHeight);

  moveImage.setOnClickListener(new View.OnClickListener() {

   @Override
   public void onClick(View v) {
    AlertDialog.Builder builder = new AlertDialog.Builder(
      BoardPhotoShooting.this);
    builder.setTitle("설정");
    builder.setMessage("설정을 해주세요.")
      .setCancelable(false)
      .setPositiveButton("확인",
        new DialogInterface.OnClickListener() {
         public void onClick(DialogInterface dialog,
           int id) {

         }
        });
    AlertDialog alert = builder.create();
    alert.show();
   }
  });
        }
}



-----------------------------------

class MoveObject extends View {
 @Override
 public boolean onTouchEvent(MotionEvent event) {
  Log.d("onTouchEvent", "onTouchEvent");

  int act = event.getAction();

  switch (act & MotionEvent.ACTION_MASK) {
  case MotionEvent.ACTION_DOWN: // 첫번째 손가락 터치
   //중략
   break;
  case MotionEvent.ACTION_MOVE:
   Log.d("ACTION_MOVE", "ACTION_MOVE");
   //중략
   break;
  case MotionEvent.ACTION_UP: // 첫번째 손가락을 떼었을 경우
   break;
  default:
   break;
  }

  invalidate();

  return true;
 }
}

안녕하세요

위 코드처럼 MoveObject클래스에서 캔버스에 이미지를 띄우고 터치이벤트로 드래그되게 구현했습니다. 그런데 클릭도 하고싶어서 BoardPhotoShooting 클래스(액티비티)에서 .setOnClickListener를 달아 클릭이벤트를 구현해줬는데 클릭이벤트가 발생되지가 않습니다....

어떤분이 액티비티에 터치리스너를 implements해서 해보라고 하셨는데도 잘 안되더라구요.....ㅠㅠ

 

혹시 아시는분 도움좀주시면 감사하겠습니다....!!

익명사용자 님이 2014년 10월 22일 질문

1개의 답변

0 추천

MoveObject에 onTouchEvent 함수에서 touch down , touch up 이 발생할 때 onClick 함수를 호출하도록 직접 구현해야 합니다.

익명사용자 님이 2014년 10월 22일 답변
...