De réaliser à la fois la normale clic et clic long sur le bouton
J'ai un seul bouton nommé comme CheckIn.Jetez un oeil à mon code.
checkIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(HomeSafeActivity.this, "Normal Press", Toast.LENGTH_LONG).show();
});
checkIn.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Toast.makeText(HomeSafeActivity.this, "Long press", Toast.LENGTH_LONG).show();
return false;
}
});
Maintenant, quand je suis normale, appuyez sur le bouton, le message indique que la Normale appuyez sur.Quand j'appuyez Longtemps sur le bouton, le message montre tant de la presse ainsi qu'à la Normale, appuyez sur les deux. Ce que je veux que lorsque j'appuyez longuement sur le bouton que le long de la conférence de presse devrait déclencher pas normal de presse de l'événement.Comment puis-je y parvenir??
- Désactiver onClickListener() à l'intérieur de onLongClickListener(). Cela pourrait être une option. Je ne suis pas sûr si cela fonctionne, juste cuisson des idées 🙂
- Je pense que @ClaireG est droit. Essayez avec cette solution.
- Mettre un drapeau à la fois les fonctions
onClick
etonLongClick
, à s'excluent les uns les autres (via unif
déclaration). Vous ne pouvez pas uncatch l'un des deux événements, dans le cas où vous avez à la fois les auditeurs. - Comment faire pour le désactiver?
Vous devez vous connecter pour publier un commentaire.
J'ai eu la solution à ma Question.De retour de la true au lieu de false.Juste voir ci-dessous:-
onLongClick()
- Ce retourne un booléen pour indiquer si vous avez consommé de l'événement et il ne devrait pas être réalisées. C'est,return true
pour indiquer que vous avez géré l'événement et il devrait s'arrêter là;return false
si vous n'avez pas traitées et/ou l'événement doit continuer à tout autreon-click listeners
.Toast
?Vous devez retourner true en cas de long sur
Exemple:
Voici une solution (cela ne fonctionnera que si (lorsque les deux sont déclenchés), d'abord le long de la presse se déclenche, puis la normale à la presse):
public boolean onLongClick(View v) est un booléen renvoie vrai si on clique dessus
donc, assurez-return true;
Essayez ceci; il devrait fonctionner.
Essayez android:onclick="btnPressed" au lieu de OnClickListener et l'utilisation OnLongClickListener est pas un problème dans mon code de test