2011-03-11 1 views
10

내 활동에서 onTouchEvent (TouchEvent)를 구현했습니다. 그러나이 단계를 액티비티 주 콘텐츠 뷰의 이벤트로 등록하는 데 필요한 단계가 무엇인지 알고 싶습니다. 액티비티의 전체 화면 공간을 다루는 뷰에 대해 onTouchEvent를 설정하려고합니다. 레이아웃 ID를 취하는 setContentView()가 있습니다. ontouchEvent 리스너로 활동을 기본 컨텐츠보기에 등록하려면 어떻게해야합니까? 이 뷰를 얻으려면 findByView (activityLayoutId)를 고려하고 있지만이 방법은 옳고 그름과 완전히 같지 않습니다. 감사합니다안드로이드 전체 활동 메인 컨텐츠보기에 OnTouchEvent를 등록하는 방법?

+0

또는 Activity에서 View.onTouchEvent를 구현하기 만하면 충분하며보기가 자동으로 등록됩니다. – Androider

+0

저는이 화면에 추가 된 일부보기가 아니라 전체 활동 화면에서 터치 이벤트를 활성화하는 방법을 찾고 있습니다. – Androider

답변

16

당신이 Activity#setContentView(int) 후보기로 콘텐츠보기를 얻을 수있는 방법을 찾고 있다면, 당신은 당신의 레이아웃의 가장 바깥 요소에 ID를 설정할 수 있습니다

android:id="@+id/entire_view" 

과 그것을 참조 setContentView 후 당신의 onCreate 방법 : (onCreate에서)이 같이

View view = getViewById(R.id.entire_view); 
view.setOnTouchListener(... 
-1

활동 onCreate() 방법 :

onCreate(){ 
    setContentView(R.id.yourMainLayout); 
    View contentView = (View)findViewById(R.id.yourMainLayout); 
    contentView.setOnTouchListener((View.OnTouchListener)this); 
} 

사람이 더 좋은 방법을 알고하지 않는 한.

+1

당신은 여전히 ​​R.layout.yourMainLayout을 사용할 수 있으며 레이아웃 내에서 youMainLayout을 id로 제공합니다. – Androider

1

:

setContentView(R.layout.activity_main); 

View view = findViewById(R.id.main); 
view.setOnTouchListener(new View.OnTouchListener() { 

            @Override 
            public boolean onTouch(View view,MotionEvent event) { 


             return true; 

            } 
           });