J'utilise un numéroteur opensource que j'ai trouvé quelque part (merci à Jeffrey F. Cole) mais je viens de trouver un bogue.Détecter un événement tactile en dehors de la mise en page
Le numberpicker a un gestionnaire d'augmenter le nombre plus rapide lorsque vous appuyez sur le bouton
long`private Handler repeatUpdateHandler = new Handler();
`
class RepetetiveUpdater implements Runnable {
public void run() {
if (autoIncrement) {
increment();
repeatUpdateHandler.postDelayed(new RepetetiveUpdater(),
REPEAT_DELAY);
} else if (autoDecrement) {
decrement();
repeatUpdateHandler.postDelayed(new RepetetiveUpdater(),
REPEAT_DELAY);
}
}
}
.....
public class NumberPicker extends LinearLayout {
.....
// Auto increment for a long click
increment.setOnLongClickListener(new View.OnLongClickListener() {
public boolean onLongClick(View arg0) {
autoIncrement = true;
repeatUpdateHandler.post(new RepetetiveUpdater());
return false;
}
});
// When the button is released, if we're auto incrementing, stop
increment.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP && autoIncrement) {
autoIncrement = false;
}
return false;
}
});
Le problème est quand vous longclick le bouton le compteur commence à augmenter, mais quand vous maintenez votre doigt vers le bas et faites glisser votre doigt sur l'écran, le compteur continue d'additionner, même lorsque vous levez votre doigt.
Alors comment puis-je détecter que le doigt sort de ma disposition numberpicker et arrêter le compteur?
Thx :)
Oui, je comprends, mais le problème est que lorsque l'utilisateur lève son doigt n'importe où sur l'écran, le compteur continue d'additionner à moins que vous ne leviez votre doigt sur l'incrément bouton :) Si cela a du sens .. –
@ just8laze merci pour la clarification. voir mon edit. – LuxuryMode
Je l'ai trouvé ici, http://codejeff.com/?p=42, vous pouvez trouver le zip dans le deuxième commentaire. Les liens dans le message ne semblent plus fonctionner. –