J'ai implémenté le bouton onLongClickListener
dans Android Dialog
qui réduit automatiquement le nombre en utilisant les minuteurs. Voici le codeonTouchEvent dans le dialogue
myIncreaseTimer = new Timer();
final Runnable runnable_decrease = new Runnable() {
public void run() {
int txt = Integer.parseInt(length.getText().toString());
txt -= 1;
length.setText(String.valueOf(txt));
if (txt == 0) {
myIncreaseTimer.cancel();
myIncreaseTimer.purge();
myIncreaseTimer = new Timer();
}
}
};
btnMinus.setOnLongClickListener(new View.OnLongClickListener() {
public boolean onLongClick(View v) {
myIncreaseTimer.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(runnable_decrease);
}
}, 0, 300);
return true;
}
});
Quand je suis à l'intérieur de l'activité, pas de dialogue, je peux arrêter la diminution par onTouchEvent
lorsqu'un utilisateur touche l'écran
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
myIncreaseTimer.cancel();
myIncreaseTimer.purge();
myIncreaseTimer = new Timer();
}
return true;
}
Cependant, je ne peux pas le faire dans la boîte de dialogue . Plus encore, la boîte de dialogue n'a pas onTouchEvent.
Est-ce que quelqu'un sait comment puis-je mettre en œuvre onTouchEvent
dans Dialog
ou où dois-je arrêter le minuteur d'augmentation dans le Dialog
?
Mais assurez-vous d'étendre Activity, pas AppcompctActivity et un autre pense que je veux ajouter ici. Si nous définissons syle android: style/Theme.Dialog. Le titre de l'activité s'affichera. Si vous voulez le supprimer utilisez android: style/Theme.Holo.Dialog.NoActionBar –