IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Studio Java Discussion :

Problème android studio pour fabriquer un minuteur :/


Sujet :

Android Studio Java

  1. #1
    Invité
    Invité(e)
    Par défaut Problème android studio pour fabriquer un minuteur :/
    bjr je débute en java pour android studio seul problème par manque de connaissance je n'arrive pas à réaliser mon projet c'est pour cela que je sollicite votre aide


    mon projet est simple fabriquer un minuteur avec un temps déjà prédéfini seul problème je suis n'y arrive pas je vous met mon code ci joint merci d'avance pour votre aide

    lamarche jeune développeur

    j'ai essayé de 2 maniérè différente

    -----------------------------------------------------------------------------------------------------------------------------------------------------------

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    package frenchcompany33.com.switch_activiy;
     
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
     
    /**
    * Created by lamarche on 02/07/2017.
    */
     
    public class pateActivity extends Activity {
    int time = 540;
    TextView textpate;
    Button btp;
    @Override
    protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pate);
     
    btp = (Button) findViewById(R.id.bpate);
    textpate = (TextView)findViewById(R.id.textpate);
     
    btp.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
     
    if (time > 0) {
     
    --time;
     
    try {
    Thread.sleep(1000);
    } catch (InterruptedException e) {
    e.printStackTrace();
    textpate.setText("" + time);
    }
     
     
    if (time <= 0) {
    textpate.setText("Fini ! ");
    }
     
    }
     
    textpate.setText("" + time);
     
     
    while (time < 0 ){
    time = time -1;
    textpate.setText("IL reste " +time);
    try {
    Thread.sleep(1000);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
     
    }
    }
     
    });
    }
     
    }

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Tu ne peux pas procéder comme tu le fait puisque tu bloc le thread UI avec ton Thread.sleep().

    Soit tu créer un thread dédié à la décrémentation du temps et tu le fait communiquer avec le thread UI pour intéragir avec l'interface.

    Soit tu utilise des outils d'android qui sont là pour ce genre de chose comme le CountDownTimer : https://developer.android.com/refere...DownTimer.html

    Prend également l'habitude d'indenté ton code et de normalisé les membres de ta classe.
    En java on écrit généralement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class MaClass
    {
        private int mVariable;
    }
    et pas juste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class MaClass
    {
        int variable;
    }
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Avatar de BeeApps
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2017
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2017
    Messages : 86
    Points : 615
    Points
    615
    Par défaut
    Hello,

    Je rejoins grunk sur le fait qu'il ne faut pas utiliser de sleep dans le thread principal.

    Par contre pourquoi décrementes-tu "time" que lorsque tu cliques sur le bouton ? Car tu veux que le minuteur décremente tout seul en fonction du temps.
    Si c'est simplement une erreur de ta part, utiliser CountDownTimer comme proposé ci-dessus va effectivement résoudre le problème.

  4. #4
    Invité
    Invité(e)
    Par défaut
    merci beaucoup je suis novice dans la programmation android et je ne connaissais pas cela merci beaucoup x)


    Citation Envoyé par grunk Voir le message
    Tu ne peux pas procéder comme tu le fait puisque tu bloc le thread UI avec ton Thread.sleep().

    Soit tu créer un thread dédié à la décrémentation du temps et tu le fait communiquer avec le thread UI pour intéragir avec l'interface.

    Soit tu utilise des outils d'android qui sont là pour ce genre de chose comme le CountDownTimer : https://developer.android.com/refere...DownTimer.html

    Prend également l'habitude d'indenté ton code et de normalisé les membres de ta classe.
    En java on écrit généralement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class MaClass
    {
        private int mVariable;
    }
    et pas juste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class MaClass
    {
        int variable;
    }

  5. #5
    Invité
    Invité(e)
    Par défaut
    oui c'est un erreur car je ne connaissais pas le CountDownTimer merci x)


    Citation Envoyé par BeeApps Voir le message
    Hello,

    Je rejoins grunk sur le fait qu'il ne faut pas utiliser de sleep dans le thread principal.

    Par contre pourquoi décrementes-tu "time" que lorsque tu cliques sur le bouton ? Car tu veux que le minuteur décremente tout seul en fonction du temps.
    Si c'est simplement une erreur de ta part, utiliser CountDownTimer comme proposé ci-dessus va effectivement résoudre le problème.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème Android studio "Gradle project sync failed"
    Par Invité dans le forum Android Studio
    Réponses: 5
    Dernier message: 12/09/2018, 10h58
  2. [Android] Problème android studio pour fabriquer un minuteur :/
    Par Invité dans le forum Mon application mobile
    Réponses: 0
    Dernier message: 04/07/2017, 19h39
  3. Réponses: 1
    Dernier message: 26/12/2016, 17h06
  4. Android Studio pour débutant
    Par bibi28 dans le forum Android Studio
    Réponses: 4
    Dernier message: 21/10/2015, 07h43
  5. Problème Android Studio
    Par magnesix dans le forum Android Studio
    Réponses: 16
    Dernier message: 12/02/2015, 14h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo