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 Discussion :

Structure Activity


Sujet :

Android

  1. #1
    Membre averti
    Homme Profil pro
    informatique, aikido
    Inscrit en
    Février 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : informatique, aikido
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Février 2014
    Messages : 42
    Par défaut Structure Activity
    Bonjour à tous/tes
    Je suis débutant et je suis en train avec peine de créer une app qui entre autres calcule la
    conversion de températures (ºC, ºF, K). J'ai bien rédigé mon activity, la première tranche de
    calcule fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
            bc.setOnClickListener(new View.OnClickListener() {
                @Override
                        public void onClick(View v) {
     
                float a, b, c;
     
                a=Float.parseFloat(e1.getText().toString());
     
                c=a+32;
                e2.setText(""+c);
                c=a+273;
                e3.setText("" + c);
    mais la deuxième fait planter activity mais pas l'app.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                    b=Float.parseFloat(e2.getText().toString());
     
                    c=b-32);
                    e2.setText(""+c);
                    c=a+273;
                    e3.setText("" + c);
    Le problème c'est que je n'arrive plus à lier les deux opérations.
    Voici l'activity complète qui me parait logique et qui fonctionne pour la 1º opération.
    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    package lajares.supercalculator;
     
    import android.app.Activity;
    import android.content.Context;
    import android.os.Bundle;
    import android.view.View;
    import android.view.inputmethod.InputMethodManager;
    import android.widget.Button;
    import android.widget.EditText;
     
    public class Temperatures extends Activity {
     
        EditText e1;
        EditText e2;
        EditText e3;
        Button bc;
        Button buttonC;
     
        private double chiffre1;
        private boolean clickOperateur = false;
        private boolean update = false;
        private String operateur = "";
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.temperatures);
     
            e1 = (EditText)findViewById(R.id.editText1); /*champ celsius*/
            e2 = (EditText)findViewById(R.id.editText2); /*champ fahrenheit*/
            e3 = (EditText)findViewById(R.id.editText3); /*champ kelvin*/
            bc = (Button)findViewById(R.id.calculate);
            buttonC = (Button)findViewById(R.id.buttonC);
     
            e2 = (EditText)findViewById(R.id.editText2);
     
            bc.setOnClickListener(new View.OnClickListener() {
                @Override
                        public void onClick(View v) {
     
                float a, b, c;
     
                a=Float.parseFloat(e1.getText().toString());
     
                c=a+32;
                e2.setText(""+c);
                c=a+273;
                e3.setText("" + c);
     
                    b=Float.parseFloat(e2.getText().toString());
     
                    c=b-32);
                    e2.setText(""+c);
                    c=a+273;
                    e3.setText("" + c);
     
     
                }
            });
            buttonC.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    resetClick();
                }
            });
        }
        public void resetClick(){
            clickOperateur = false;
            update = true;
            chiffre1 = 0;
            operateur = "";
            e1.setText("");
            e2.setText("");
            e3.setText("");
     
        }
    }
    Je voulais arriver à faire que quand on rempli un editText les autres se remplissent automatiquement
    (ce qui fonctionne pour la première) l'erreur est ici mais je n'arrive pas à résoudre le pb. (un deuxième onClickListener ?)
    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
     float a, b, c;
     
                a=Float.parseFloat(e1.getText().toString());
     
                c=a+32;
                e2.setText(""+c);
                c=a+273;
                e3.setText("" + c);
                                                   ← ERREUR
     
                    b=Float.parseFloat(e2.getText().toString());
     
                    c=b-32);
                    e2.setText(""+c);
                    c=a+273;
                    e3.setText("" + c);
    Si qqun peut y jeter un œil et me réorienter.
    Merci d'avance

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 476
    Par défaut
    Salut,

    Déjà tu as une parenthèse de trop :
    Ensuite on n'attribue pas 2 onClickListener à un même bouton. Tu dois plutot faire un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    bc.setOnClickListener(new View.OnClickListener() {
                @Override
                        public void onClick(View v) {
     
                if (editText est vide){
                    faire le calcul
                }
                else { clean editext}
    Enfin ton calcul pour les fahrenheit est faux, ce n'est pas juste F = °C + 32

  3. #3
    Membre averti
    Homme Profil pro
    informatique, aikido
    Inscrit en
    Février 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : informatique, aikido
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Février 2014
    Messages : 42
    Par défaut
    Salut Turvy et merci de m'avoir répondu.
    Le rapport ºC ºF est ok car dans le 1º calcul

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                a=Float.parseFloat(e1.getText().toString());
     
                c=a+32;
                e2.setText(""+c);
                c=a+273;
                e3.setText("" + c);
    j’introduis un chiffre dans le champ ºC (a) et dans le champ e2 (ºF) j'ai a+32.
    tout ça fonctionne.
    Dans le second cas ou j'entre un chiffre dans le champ ºF pour que l'affichage en ºC
    soit correct,c'est le contraire : b-32 = ºC et ça fonctionne.

    Le problème ce trouve au niveau de la conception du script :
    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
     bc.setOnClickListener(new View.OnClickListener() {
                @Override
                        public void onClick(View v) {
     
                float a, b, c;
     
                a=Float.parseFloat(e1.getText().toString());
     
                c=a+32;
                e2.setText(""+c);
                c=a+273;
                e3.setText("" + c);
    -------------------------------------------------------------
                    b=Float.parseFloat(e2.getText().toString());
     
                    c=b-32;
                    e2.setText(""+c);
                    c=a+273;
                    e3.setText("" + c);
    Si j'utilise un seul bloc ça fonctionne exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      a=Float.parseFloat(e1.getText().toString());
     
                c=a+32;
                e2.setText(""+c);
                c=a+273;
                e3.setText("" + c);
    c'est quand il y a les deux que le 2º coince.
    Car mon idée est d'établir une relation arithmétique entre les différents champ
    editText1
    editText2
    editText3.
    Si mon idée n'est pas réalisable j’opterai pour condition if
    mais ça va être compliqué.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 476
    Par défaut
    Encore une fois, ton calcul de conversion est faux (http://www.rapidtables.com/convert/t...fahrenheit.htm). 100°C ne fait pas 132°F.

    Sinon, je ne vois pas trop où pourrait être l'erreur, il faut que tu montres le logcat associé, c'est lui qui tu diras où à lieu l'erreur et sa nature.

  5. #5
    Membre émérite
    Avatar de LeBzul
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 381
    Par défaut
    Salut,
    Je pense que ton erreur est simple à corriger, mais pour ca il faudrait les log du crash...

    Il faut que tu apprennes à utiliser le LogCat Android qui t'indiqueras ton erreur réel :
    http://nbenbourahla.developpez.com/t...s-application/

Discussions similaires

  1. Structure Active Directory
    Par papillange dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 02/04/2008, 12h28
  2. Réponses: 2
    Dernier message: 02/04/2007, 10h01
  3. recuperation de la structure d'une base
    Par pascalT dans le forum 4D
    Réponses: 7
    Dernier message: 07/06/2006, 15h32
  4. longueur d'une structure
    Par bohemianvirtual dans le forum C
    Réponses: 6
    Dernier message: 28/05/2002, 18h31
  5. [Kylix] Clé d'activation
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 27/03/2002, 23h19

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