• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Aplikacja z użyciem implemetacji "częstych gestów" nie chce się włączyć

Object Storage Arubacloud
0 głosów
66 wizyt
pytanie zadane 22 września 2020 w Java przez amtrax Dyskutant (9,630 p.)

Cześć, 

Do kodu mojej aplikacji dodałem możliwość wykrywania "częstych gestów" (Common Gestures)
W osobnej klasie zaimplementowałem wszystkie niezbędne metody interfejsu GestureDetector.OnGestureListener

Kompilator nie sygnalizuje żadnych błędów, jednak aplikacja na urządzeniu virtualnym nie chce się włączyć.

Kod: 

public class ListenerClass extends AppCompatActivity  implements GestureDetector.OnGestureListener
private TextView gesture = findViewById(R.id.textViewGesture);
public boolean onDown(MotionEvent event)
{
        gesture.setText("onDown");
        return true;
 }


@Override
public boolean onFling(MotionEvent event1, MotionEvent event2, float velocityX, float velocityY) {
    gesture.setText("onFling");
    return true;
}
@Override
public void onLongPress(MotionEvent event) {
    gesture.setText("onLongPress");
}
@Override
public boolean onScroll(MotionEvent e1,
                        MotionEvent e2,
                        float distanceX, float
                                distanceY) {
    gesture.setText("onScroll");
    return true;
}
@Override
public void onShowPress(MotionEvent event) {
    gesture.setText("onShowPress");
}
@Override
public boolean onSingleTapUp(MotionEvent event) {
    gesture.setText("onSingleTapUp");
    return true;
}

Klasa Main 

public class MainActivity extends AppCompatActivit {

private ListenerClass listenerclass = new ListenerClass();
private GestureDetectorCompat  gDetector = null;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    this.gDetector = new GestureDetectorCompat(listenerclass,listenerclass);

}

 

1 odpowiedź

0 głosów
odpowiedź 23 września 2020 przez Wiciorny Ekspert (270,110 p.)
 this.gDetector = new GestureDetectorCompat(listenerclass,listenerclass);
 

zastanawia mnie, podajesz mu na context pustą listę ? .... spradz takie rozwiązanie żeby podawać "obiekt" na rzecz którego jest ta metoda wywoływana 

this.myGestureDetector = new GestureDetectorCompat(this,this);
        myGestureDetector.setOnDoubleTapListener(this)



W dokumentacji jest jeszcze informacja o metodzie której u Ciebie nie ma 

@Override
public boolean onTouchEvent(MotionEvent event){
    this.myGestureDetector.onTouchEvent(event);
    // konstruktor klasy narzednej musi byc wczesniej wywolany
    return super.onTouchEvent(event);
}

Dokumentacja :

GestureDetector.OnGestureListener notifies users when a particular touch event has occurred. To make it possible for your GestureDetector object to receive events, you override the View or Activity's onTouchEvent() method, and pass along all observed events to the detector instance.

Podobne pytania

+2 głosów
1 odpowiedź 539 wizyt
pytanie zadane 1 października 2016 w Java przez wojtekw0703 Użytkownik (960 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...