2012-07-12 17 views
6

nazywam tę funkcję w mojej działalności:android dispatchTouchEvent dostać podsłuchu widok

@Override 
public boolean dispatchTouchEvent(MotionEvent touchEvent) 

który pozwala mi na przetwarzanie skargę wszelkie składniki dostać skoncentrowane lub nawet odmówić nacisk na te elementy.

PROBLEM: Zastanawiałem się, jak mogę wiedzieć, co składnik (Zobacz) została dotknięta tą funkcją, wtedy będę mógł wybrać, czy chcę consumme zdarzenie czy nie.

UGLY ROZWIĄZANIE: Jestem obecnie mający brzydki rozwiązanie, które jest: Znam pozycję składnika, który jest dozwolony, aby uzyskać zdarzenie, i robię mnóstwo stan około zdecydować, czy użytkownik kliknął ten składnik.

Dzięki.

Odpowiedz

0

Prawdopodobnie chcesz użyć OnTouchListener

private OnTouchListener mOnTouchListener= new OnTouchListener() { 

    public boolean onTouch(View v, MotionEvent event) { 

      switch(v.getId()){ 

       case R.id.id1): 
       // Do stuff 
       break; 

       case R.id.id2: 
       // Do stuff 
       break; 
       }  

     return false/true; 
    } 
}; 
+0

byłby dobre rozwiązanie. Niestety, z jakichś powodów (zły kod, zła struktura, ...), kiedy umieściłem tę funkcję na głównym elemencie i ustawiłem jej potomną Fokusowalność na wcześniejszą, To po prostu nie wchodzi w tę funkcję. Podsumowując, nie mogę go uruchomić, ale nie będę spamować z moją 3000 linii kodu. Po prostu szukałem innego rozwiązania. –

0

view.getid == R.id .// id w układzie // warunek może być sprawdzane pod kątem wymaganej widzenia kliknięciu

Powiązane problemy