2011-03-11 16 views
10

Etkinliğimde onTouchEvent (TouchEvent) uygulamasını uygulamıyorum. Bununla birlikte, ana İçerik görünümündeki etkinlikler için bu etkinliği kaydetmek için hangi adımların gerektiğini bilmek isterim. Etkinliğin tüm ekran alanını kapsayan görünüm için onTouchEvent öğesini ayarlamak istiyorum. bir düzen kimliği alan bir setContentView() var. Etkinliği ana içerik görünümüne ontouchEvent dinleyicisi olarak nasıl kaydederim. Bu görünümü elde etmek için findByView (activityLayoutId) düşünür, ancak bu doğru veya en iyi şekilde gibi görünmüyor. TeşekkürAndroid Tüm ana etkinlik görünümü için OnTouchEvent nasıl kaydedilir?

+0

veya sadece etkinlikte View.onTouchEvent uygulamak yeterli ve görünüm otomatik olarak bu kayıt olacak? – Androider

+0

Sadece bu ekrana eklenen bazı görünümlerde değil, tüm etkinlik ekranında dokunma etkinliğinin nasıl etkinleştirileceğini arıyorum. – Androider

cevap

16

Eğer Activity#setContentView(int) sonra Görünüm olarak içerik görünüm elde etmek için bir yol arıyorsanız, o zaman düzeni en dış elemana bir kimliği ayarlayabilirsiniz:

android:id="@+id/entire_view" 

ve ona gönderimde setContentView sonra onCreate yöntemi: (onCreate olarak) Bunun gibi

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

Faaliyetleri onCreate() yöntemi:

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

birisi daha iyi bir yolu biliyor sürece.

+1

hala R.layout.yourMainLayout öğelerini kullanabilir ve düzen içinde youMainLayout kimliğini belirtin – 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; 

            } 
           }); 
İlgili konular