Yanıtlar:
Gönderen Etkinlik İşleyicilere :
onLongClick () - Bu, olayı tüketip tüketmediğinizi ve daha fazla taşınmaması gerektiğini belirtmek için bir boole döndürür. Yani, olayı hallettiğinizi ve olay burada durması gerektiğini belirtmek için true döndürün; Eğer işlem yapmadıysanız ve / veya olayın diğer tıklama dinleyicilerinde devam etmesi gerekiyorsa false döndür.
Eğer dönüyor true, hesabınızla ilgili onLongClick()ve hala normal bir tıklama olayını almak?
Eklemek için düzenlendi : Bir ListView için kullanıyor olabilirsiniz OnItemLongClickListener. onItemLongClick()O olayı tüketilen belirtmek için benzer bir Boole değeri iade orada kullanır.
Cevabı daha basit terimlerle ifade etmek:
Verilen:
@Override
public boolean onLongClick(View view) {
return true; // or false
}
return trueolayın tüketildiği anlamına gelir. Halledilir. Başka hiçbir tıklama etkinliği bildirilmeyecektir.return falseolayın tüketilmediği anlamına gelir. Diğer tıklama olayları bildirim almaya devam edecektir.Dolayısıyla, onClickbir'den sonra da tetiklenmek istemiyorsanız , olaydan onLongClickbaşlamalısınız .return trueonLongClick
Emin geçersiz kılma emin olun OnClickListenersizin için onClickyöntemiyle. Ayrıca geçersiz kılma emin olun OnLongClickListenersizin için onLongClickyöntemiyle. Ve onLongClickyönteminizin geri döndüğünden emin olun true, çünkü bu onClick.
Sen uygulayabileceği setOnLongClickListenerbir örneğini oluşturarak new View.OnClickListener()veya new View.OnLongClickListener()normal bir OnClickListener Eğer yöntemini aktive tek bir tıklama bu hataları alacak Uzun tıklama ve uygular oluşturursanız,. new View.OnLongClickListener()Yalnızca uzun tıklamaları yakalamak için kullanmalısınız
myListView.setOnItemLongClickListener(this);Seçeneği ayarlamak için , işlevi geçersiz kılmanız gerekirpublic boolean onItemLongClick(...). Buradareturn true, LongClick'in etkinleştirildiğini gösteren ve normal tıklamada tetikleyiciyi iptal edeceğini gösteren tek yapmanız gereken . Yanlış döndürürseniz, normal tıklamayı da tetikler.