Domanda

ottengo un errore nel tentativo di implementare un'OnTouchListener:

  

Il metodo onTouch (View, MotionEvent)   di tipo nuovo View.OnTouchListener () {}   deve avere la priorità di un metodo della superclasse

Non ho idea del perché non funziona come sembra sto overrriding il metodo in modo corretto:

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

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

Tutte le idee su come posso eseguire il debug di questo?

È stato utile?

Soluzione

In Eclipse, andate a Windows> Preferenze> Java> Compiler e selezionare 1.6.

Si potrebbe utilizzare 1.5 e 1.5 non consente @Override sui metodi interfacce, ma solo sul metodo della superclasse. 1.6 fa.

Se lo fa ancora non funziona, rimuovere la riga @Override ...

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

    OnTouchListener mTouchListener = new OnTouchListener()
    {

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

Altri suggerimenti

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

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

che compila bene, sei sicuro che non ci siano errori di sintassi? Cosa sei compilatore impostazioni? Java 5 o 6?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top