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

ontouchlistener 문의

0 추천
리스트뷰를 만든 후

리스트 목록을 클릭하여

액티비티(1)가 나오면

액티비티 화면의 터치를 구현하여 터치 하면 또 다른 액티비티(2)로 전환되는 것을 구현하려고 합니다

ontouchlistener 사용하고 있는데 잘 안됩니다.

질문 1.

액티비티(1)까지는 넘어오는데 일단 터치(Toast)가 나오지 않으니 터치가 제대로 안 들어가네요

액티비티(1) 코드에

    public boolean onTouch(View v, MotionEvent event) {
        int action = event.getAction();
        int id = v.getId();

        if (action == MotionEvent.ACTION_DOWN) {
            Toast.makeText(FourActivity.this, "onTouchEvent", Toast.LENGTH_SHORT).show();
            
            return true;

        }                
        return false;
    }

해주었습니다.

무엇이 문제인가요?

 

질문 2.

액티비티(1)에서 액티비티(2)를 불러오려면

onCreate에 아래와 같이 layout을 추가로 코드 입력해준 후,

         LinearLayout coupon_detail_page = new LinearLayout(this);
         coupon_detail_page.setOnTouchListener(this);
         setContentView(R.layout.coupon_detail_page);

실행시키면 리스트뷰에서 클릭하면 바로 액티비티(2)로 넘어갑니다.

 

중간에 액티비티(1)을 실행 안하고 액티비티(2)로 바로 실행시켜주는 이유가 무엇인가요?

 

질문 3.

OnTouchListener 예제 참고정보좀 알려주시기 바랍니다.
세봉아 (500 포인트) 님이 2016년 1월 22일 질문
세봉아님이 2016년 1월 22일 수정

1개의 답변

0 추천

이해가 잘 안되네요. 대충 추측성입니다.

1. 터치 하실 뷰에 setOnTouchListener 해주셨는지 확인해보시고...

2. 예시인지는 모르겠지만 coupon_detail_page를 setContentView 하셨는데 이게 2번 액티비티 화면 아닌지 확인해보시고.. (setContentView 는 그 xml 혹은 뷰를 화면에 뿌려준다는 내용입니다..)

3. 구글에 android setOnTouchListener 치면 많이 나옵니다...

참고로 액티비티 이동은 startActivity 입니다..

그리고 onTouch, onTouchEvent의 경우는 return값에 따라 이벤트가 전달되는 과정이 조금 다릅니다. 

클릭형태로 구현하시는거면 그냥 onClickListener쓰셔도 됩니다. (아래는 예시)

LinearLayout coupon_detail_page = new LinearLayout(this);
         coupon_detail_page.setOnClickListener(new OnClickListener() {

    @ovrride

      public void onClick(View v) {

      Intent i = new Intent(this, otherActivity.class);

     startActivity(i);

}    

 

});

귀찮근 (2,960 포인트) 님이 2016년 1월 22일 답변
...