2012-01-06 3 views
0

Bonjour donc je fais une application Android et il utilise la géolocalisation/Google Maps, il n'y a pas de boutons sur la carte/l'application sauf un onglet hôte. donc je besoin donc si un utilisateur tape pour 1500 ms, puis une boîte de dialogue apparaît, à ce jour rien ne se passe mais je reçois aucune erreur ici est mon code merci à l'avanceAndroid Motionevent superposition

class Touchy extends Overlay{ 
    public boolean ontouchevent(MotionEvent e, MapView m){ 
     if (e.getAction() == MotionEvent.ACTION_DOWN){ 
      start = e.getEventTime(); 
     } 
     if (e.getAction() == MotionEvent.ACTION_UP){ 
      stop = e.getEventTime(); 
     } 
     if (stop - start > 1500){ 
      AlertDialog alert = new   AlertDialog.Builder(SPtouch2fixActivity.this).create(); 
      alert.setTitle("Alert"); 
      alert.setMessage("This is an alert"); 
      alert.setButton("OK", new DialogInterface.OnClickListener() { 

       public void onClick(DialogInterface dialog, int which) { 
        // TODO Auto-generated method stub 

       } 
      }); 
      alert.setButton2("Update Geolocation", new DialogInterface.OnClickListener() { 

       public void onClick(DialogInterface dialog, int which) { 
        // TODO Auto-generated method stub 

       } 
      }); 
      alert.setButton3("cancel", new DialogInterface.OnClickListener() { 

       public void onClick(DialogInterface dialog, int which) { 
        // TODO Auto-generated method stub 

       } 

      }); 
      alert.show(); 
      return true; 
     } 

     return false; 
    } 

} 

}

Répondre

1

J'ai eu le même problème , mais j'ai finalement réussi à le réparer après quatre jours de bataille!

Le problème est qu'il vous manque @Override par-dessus votre méthode.

Pour résoudre ce problème, modifiez votre code à ceci:

@Override 

public boolean ontouchevent(MotionEvent e, MapView m) { 
    if (e.getAction() == MotionEvent.ACTION_DOWN) { 
     start = e.getEventTime(); 
    } 
} 

Espérons que cela fonctionne pour vous.

+1

Ce n'est pas la solution, mais devrait aider à révéler la cause: 'onTouchEvent' est différent de' ontouchevent'. –

Questions connexes