Вопрос

Я получаю ошибку, пытаясь реализовать OnTouchListener:

Метод OnTouch (View, MotionEvent) типа New View.OnouchListener () {} должен переопределить метод SuperClass

Я понятия не имею, почему он не работает, так как кажется, что я правильно переопределяю метод:

public class MyActivity extends Activity
{
    ...creation code etc...

    OnTouchListener mTouchListener = new OnTouchListener()
    {
        @Override
        public boolean onTouch(View v, MotionEvent event)
        {
                 ...touch code...
            }
        }
}

Есть идеи о том, как я могу отладить это?

Это было полезно?

Решение

В Eclipse перейдите в Windows> Предпочтение> Java> Компилятор и выберите 1.6.

Вы можете использовать 1,5, а 1.5 не позволяет @Override на методах интерфейсов, а только на методе SuperClass. 1.6 делает.

Если это все еще не работает, удалите линию @Override ...

public class MyActivity extends Activity
{
    ...creation code etc...

    OnTouchListener mTouchListener = new OnTouchListener()
    {

        public boolean onTouch(View v, MotionEvent event)
        {
                 ...touch code...
            }
        }
}

Другие советы

View.OnTouchListener mTouchListener = new View.OnTouchListener() {

        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            return false; 
        }
    };

Это просто отлично, вы уверены, что нет синтаксических ошибок? Какие настройки компилятора? Java 5 или 6?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top