2010-11-20 23 views
1

Voici le scénario:Verrouiller un bouton après avoir appuyé pendant un certain temps

L'utilisateur ouvre l'application, il appuie sur un bouton et lance une activité. Après avoir appuyé sur le bouton et que l'activité est exécutée, je veux désactiver le bouton jusqu'à ce que la semaine recommence. Même s'ils ferment l'application et reviennent, elle devrait toujours être désactivée à moins qu'elle ne soit réinitialisée. Par exemple, s'ils appuient sur le bouton le lundi, ils ne devraient pas être en mesure de le faire jusqu'à dimanche à 00:00.

Peu importe le jour où ils appuient initialement sur le bouton, ils ne doivent pas pouvoir appuyer à nouveau avant le début de la semaine.

Quel serait le moyen le plus simple de le faire dans Android? Devrais-je avoir le programme de stocker la date et l'heure qu'ils ont initialement appuyez sur, puis calculer le temps jusqu'à ce réinitialiser chaque fois qu'ils ouvrent l'application?

+0

Antifeature! Cela va être vraiment ennuyeux si l'utilisateur appuie sur un bouton par accident, maintenant ils ne peuvent pas utiliser ce bouton pendant une semaine. –

+0

Eh bien, il suffit d'ajouter une fenêtre de confirmation pour éviter ce genre de problèmes. – Sephy

Répondre

0

La façon la plus simple que je pourrais penser pour vous serait de mettre les dates dans la base de données de votre application. Alors que lorsque l'utilisateur clique sur le bouton, vous créez un objet Date, le mettre dans le format que vous voulez et en créer un autre + 7 jours dans le même format. Vous mettez la 2ème date dans la base de données et chaque fois que vous lancez l'activité avec le bouton, vous vérifiez la base de données et comparez la date du jour avec celle de la base de données. De cette façon, aucun calcul effectué après avoir récupéré la valeur de la DB, juste comparaison. Vous avez finalement juste à mettre en place les images du bouton et ses états cliquables pour correspondre aux résultats du test.

+0

Je n'ai pas beaucoup travaillé avec les bases de données ... pouvez-vous créer un lien vers un exemple ou un tutoriel qui pourrait vous aider? – gman1231

+0

Je ne veux pas non plus que ce soit 7 jours, il faut toujours réinitialiser le dimanche. Donc j'ai besoin de déterminer le temps entre la date à laquelle il est pressé et le dimanche à 00:00 – gman1231

+0

Eh bien, vos exigences peuvent rendre le travail un peu plus compliqué mais cela ne change pas beaucoup la prise de conscience ... Dans votre cas, vous il suffit de saisir le dimanche le plus proche après la presse, stocker sa date dans le DB, puis comparer avec la date à chaque fois que l'activité est ouverte – Sephy