Pregunta

me sale un error al intentar implementar un OnTouchListener:

  

El método onTouch (Ver, MotionEvent)   de tipo nuevo View.OnTouchListener () {}   debe reemplazar un método superclase

No tengo ni idea de por qué no está funcionando, ya que parece que estoy Predominantes el método correctamente:

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

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

¿Alguna idea sobre cómo puedo depurar este?

¿Fue útil?

Solución

En Eclipse, vaya a Windows> Preferencias> Java> Compilador y seleccione 1.6.

Puede que esté utilizando 1.5 y 1.5 no permite que @Override sobre los métodos de las interfaces, pero sólo en el método de la superclase. 1.6 hace.

Si aún así no funciona, retire la línea @ Override ...

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

    OnTouchListener mTouchListener = new OnTouchListener()
    {

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

Otros consejos

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

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

que compila bien, ¿está seguro de que no hay errores de sintaxis? ¿De qué tienes compilador configuración? java 5 o 6?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top