2012-11-20 10 views
9

Ho bisogno del tuo aiuto se qualcuno può esserlo, sarà una grande cosa per la mia soluzione. Non so è possibile o no, ma voglio provare a risolvere il problema in ogni modo .. In realtà voglio implementare due metodi su evento clic singolo, il suo semplice clic e il lungo clic, qui il mio codice: :setOnClickListener e setOnLongClickListener chiamata su un singolo pulsante problema

homebutton = (ImageButton) findViewById(R.id.home_icon); 
homebutton.setOnClickListener(new OnClickListener() { 
    public void onClick(View arg0) { 
     Intent intent = new Intent(context, MainActivity.class); 
     startActivity(intent); 
    } 
}); 
homebutton.setOnLongClickListener(new OnLongClickListener() { 
    public boolean onLongClick(View arg0) { 
     Toast.makeText(getApplicationContext(), "Long Clicked " , Toast.LENGTH_SHORT).show(); 
     return false; 
    } 
}); 

Così, qui sto ottenendo qualcosa di sbagliato, anche solo click è perfettamente funzionante, e lunga click sta anche lavorando, ma il problema è che dopo lunga evento click sua anche iniziare MainActivity come definito nel codice sopra di onClick metodo ..

Questo non dovrebbe essere fatto, il ritorno falso è anche lì, ancora non funziona come voglio .. Quindi, per favore qualcuno mi aiuti a farlo risolvere ..

Grazie in anticipo ..

+0

Certo che farà lo stesso, come ottengo risposta perfetta .. Grazie !! –

risposta

26

credo che devi ritornoTRUE nel metodo onLongClick - è necessario dire il quadro che l'evento di tocco si consuma e non oltre la gestione degli eventi.

homebutton.setOnLongClickListener(new OnLongClickListener() { 
    public boolean onLongClick(View arg0) { 
     Toast.makeText(getApplicationContext(), "Long Clicked " , 
       Toast.LENGTH_SHORT).show(); 

     return true; // <- set to true 
    } 
}); 
+0

Grazie amico, ha funzionato perfettamente .. errore stupido nella comprensione del codice .. ma grazie .. –

+0

Era che l'API di Maps v1? Sto lavorando con v2; è 'OnMapLongClickListener' e il metodo' onMapLongClick (LatLng pos) 'restituisce' void'. –

Problemi correlati