Nie kompiluje onTouchEvent

0

Witam
Przechodzę własnie kurs programowania dla początkujących na platformę Android przygotowany przez Educativo.
Nie korzystam jednak z zalecanego Eclipse lecz z Android Studio.
W rozdziale 8 "ZDARZENIA DOTYKOWE, GESTY, PRZYCISKI" natrafiłem na problem z onTouchEvent, a konkretniej przy kodzie:

myView.java:

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
public class myView extends View {

    Paint mPaint = new Paint();
Drawable myDrawable;
    int left=50, top=50, right=200, bottom=200;

@Override
public boolean onTouchEvent(final MotionEvent event) {
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                touch_x = event.getX();
touch_y = event.getY();
invalidate();
            case MotionEvent.ACTION_MOVE:
                //doSomething(); break;
case MotionEvent.ACTION_UP:
                //doSomething(); break;
}
        return true;
}
    }
}

Podczas próby kompilacji wyrzuca błąd:

error: class, interface, or enum expected

Errorxecution failed for task 'compileDebugJavaWithJavac'.

Compilation failed; see the compiler error output for details.

Kompilator również odsyła mnie do pliku View.java do linijki "final int viewFlags = mViewFlags;", jednak nie do końca rozumiem co z tym zrobić...
Orientujecie się może w czym jest problem?

0

Zaimlementuj View.OnTouchListener

0

W jakim miejscu? Przeglądając kurs nie spotkałem się z taką implementacją.
Powinienem zamienić "public boolean onTouchEvent(final MotionEvent event)" na coś w stylu "public boolean View.OnTouchListener(final MotionEvent event)" czy utworzyć całkowicie nową implementację? Jeśli nową to jak z niej skorzystać?

0

Nie, Twoja klasa ma to implementować jako interfejs

0

A moment, bo Ty tam masz rozszerzony widok. W której linijce wywala Ci błąd dokładnie?

0

Już na implementacji:
public boolean onTouchEvent(final MotionEvent event) {

1

Ok, już widzę. Masz za dużo zamknięć w klasie.
Poza tym nie widzę package
A i na dodatek chyba będziesz musiał doimplementować konstruktor ponieważ to jest View.

1 użytkowników online, w tym zalogowanych: 0, gości: 1