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

Composants graphiques Android Discussion :

Ouvrir une activité différente avec des boutons radios différents


Sujet :

Composants graphiques Android

  1. #1
    Membre à l'essai
    Femme Profil pro
    Etudiante
    Inscrit en
    Mai 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Mai 2016
    Messages : 17
    Points : 15
    Points
    15
    Par défaut Ouvrir une activité différente avec des boutons radios différents
    Bonjour,
    Je m'excuse de vous déranger,

    Je débute depuis 1 semaine et demi en android...dans le cadre d'un stage de BTS..Donc je n'ai jamais utilisé android, et le démarrage est un peu difficile...C'est pour cela que j'aurais besoin de votre aide..

    En faite j'essaye que chaque bouton radio ouvre une activité différente.
    Par expl je clique sur mon premier bouton radio j'ouvre une activité avec des informations données, après un retour, je cloque sur un nouveau bouton radio et j'ouvre une autre activité.

    Pour le moment sur mon code j'arrive bien à sélectionner les boutons, je le vois grâce au message "Toast" qui me dit quel bouton j'ai sélectionné..Mais pas moyen de l'envoyer sur une activité différente...

    Quelqu'un aurait-il des conseils à m'apporter ?
    Merci par avance.

    Voici ce que j'ai déjà fait en java:

    MainActivity.java
    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
    package com.example.administrateur.applicationdeux;
     
    import android.content.Intent;
    import android.provider.MediaStore;
    import android.support.v7.app.AppCompatActivity;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.LinearLayout;
    import android.widget.RadioButton;
    import android.widget.RadioGroup;
    import android.widget.Toast;
    import android.view.View.OnClickListener;
    import android.view.View.OnKeyListener;
     
    public class MainActivity extends AppCompatActivity {
        private Button btnValider;
        private final int CODE_REQJEU = 1000;
        private RadioButton radio;
        private RadioGroup group;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            final Button btnValider = (Button) findViewById(R.id.Valider);
            //depart.setOnClickListener(this);
     
            //on initialise le groupe de radio bouton
            group = (RadioGroup) findViewById(R.id.radioGroup1);
     
     
            //@Override
            btnValider.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
     
                    Intent myIntent = new Intent(MainActivity.this, SecondActivite.class);
                    //myIntent.putExtra("send", myIntent);
                    startActivityForResult(myIntent, CODE_REQJEU);
     
                    //on détermine quel radio bouton a été sélectionné
                    RadioButton selectRadio = (RadioButton) findViewById(group.getCheckedRadioButtonId());
                    // on définit le texte du bouton séctionné
                    String choix = selectRadio.getText().toString();
     
                    //this.startActivityForResult(intent, CODE_REQJEU);
     
                    //Si le bouton 'vide' est sélectionner envoyer un message d'erreur
                    Toast.makeText(MainActivity.this, "Vous avez sélectionné  " + choix, Toast.LENGTH_SHORT).show();
     
     
     
                }//FinOnclick
            });//FinOnClickListener
     
        }//FinOnCreate
    }//FinMainActivity
    SecondActivite.java
    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
    package com.example.administrateur.applicationdeux;
     
    import android.content.Intent;
    import android.provider.MediaStore;
    import android.support.v7.app.AppCompatActivity;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.LinearLayout;
    import android.widget.RadioButton;
    import android.widget.RadioGroup;
    import android.widget.Toast;
    import android.widget.Button;
     
     
    public class SecondActivite extends MainActivity
    {
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.second_activite);
     
            Bundle extras= getIntent().getExtras();
            if(extras != null)
            {
                String newString=extras.getString("send");
                Toast.makeText(SecondActivite.this,newString, Toast.LENGTH_SHORT).show();
            }
     
     
     
     
        }//FinOnCreate
    }//FinClass
    Bureau1.java - C'est le même que SecondActivite.java mais j'en ai crée plusieurs pour essayer d'envoyer mes informations...

    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
    package com.example.administrateur.applicationdeux;
     
    import android.content.Intent;
    import android.provider.MediaStore;
    import android.support.v7.app.AppCompatActivity;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.LinearLayout;
    import android.widget.RadioButton;
    import android.widget.RadioGroup;
    import android.widget.Toast;
    import android.widget.Button;
     
     
    public class Bureau1 extends MainActivity
    {
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.bureau_un);
     
            Bundle extras= getIntent().getExtras();
            if(extras != null)
            {
                String newString=extras.getString("send");
                Toast.makeText(Bureau1.this,newString, Toast.LENGTH_SHORT).show();
            }
     
     
     
     
        }//FinOnCreate
    }//FinClass

  2. #2
    Membre éprouvé Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Points : 1 014
    Points
    1 014
    Par défaut


    La ligne qui fait démarrer ton autre activité est startActivityForResult(myIntent, CODE_REQJEU);. Cette ligne lance l'activité indiquée dans ton Intent. Ce que tu définit ici : Intent myIntent = new Intent(MainActivity.this, SecondActivite.class);. Tu lance donc toujours SecondActivite.

    Pour faire ce que tu souhaites, il faut changer l'Intent en fonction de la selection.

    Tu regardes d'abords le choix de l'utilisateur comme tu as fait :
    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //on détermine quel radio bouton a été sélectionné
    RadioButton selectRadio = (RadioButton) findViewById(group.getCheckedRadioButtonId());
    // on définit le texte du bouton séctionné
    String choix = selectRadio.getText().toString();
    Puis tu fais un switch sur choix, et en fonction du cas tu crée un Intent différent. Et a la fin tu lance l'Intent.
    "On sera toujours mieux installé assis en 1ère que debout en 2nde", un illustre inconnu


    Avant de poser une question vérifiez si elle n'a pas déjà une réponse dans les cours et tutoriels
    Si votre problème est pensez à marquer la conversation comme telle
    Si un message est utile, pertinent, et/ou vous êtes d'accord avec, pensez à à l'inverse s'il est inutile, faux ou que vous n'êtes pas d'accord, pensez à

  3. #3
    Membre à l'essai
    Femme Profil pro
    Etudiante
    Inscrit en
    Mai 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Mai 2016
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Bonjour !
    Merci pour ta réponse !

    1. --> Mais pour le "putExtra" est-ce que je dois l'intégrer dans mon code ? Car de ce que j'ai compris il permet de stocker des données... Donc je pourrais stocker ma donnée "choix" dans le putExtra non ?

    2. --> Et aussi je lance "CODE_REQJEU" dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    startActivityForResult(myIntent, CODE_REQJEU);
    Car je l'instancie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private final int CODE_REQJEU = 1000;
    Mais j'ignore si c'est nécessaire de faire ça ?



    Sinon si je suis ton raisonnement
    il faut que je fasse:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    //Détermine le boutonRadio
    RadioButton selectRadio = (RadioButton)findViewById(group.getCheckedRadioButtonId());
    //Definir le bouton radio
    String choix = selectRadio.getText().toString();
    //Definir ce qui doit être lancé
    Intent myIntent = new Intent(MainActivity.this, choix.getClass());
    //Lancer la bonne page
    startActivityForResult(myIntent, CODE_REQJEU);
    Donc j'ai mis un "choix.getClass()" pour choisir une autre activité. Mais après si je ne mets que choix... Comment le bouton radio 1 sait qu'il doit aller sur l'activité bureau1 ?? :/

  4. #4
    Membre éprouvé Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Points : 1 014
    Points
    1 014
    Par défaut
    1 - putExtra te permet de stocker des données dans ton Intent. Le but de ceci est qu'une fois dans la deuxième activité tu puisse récupérer ces données.

    2 - Ce nombre que tu passe dans startActivityForResult te sert à identifier le lancement d'une activité. Une fois la seconde activité terminée, la fonction onActivityresult va être lancée dans ta mainActivity. Ici tu va pouvoir vérifier le requestCode (dans ton cas CODE_REQJEU). cela te permet de savoir dans ton main de quelle activité tu viens et depuis quel intent elle avait été lancée.

    Vu ce que tu souhaites je pense qu'il faut faire un quelque chose comme ça :
    Code JAVA : 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
    //Détermine le boutonRadio
    RadioButton selectRadio = (RadioButton)findViewById(group.getCheckedRadioButtonId());
    //Definir le bouton radio
    String choix = selectRadio.getText().toString();
     
    Intent intent;
    switch(choix){
    		case "choix1" :
    			intent = new Intent(this, Activity1.class);
    			startActivityForResult(intent, CODE_1);
    			break;
    		case "choix2" :
    			intent = new Intent(this, Activity2.class);
    			startActivityForResult(intent, CODE_1);
    			break;
    		  .
    		  .  //autres choix s'il y en as
    		  .
    		default :
    			//erreur? ou choix invalide ?
    }
    "On sera toujours mieux installé assis en 1ère que debout en 2nde", un illustre inconnu


    Avant de poser une question vérifiez si elle n'a pas déjà une réponse dans les cours et tutoriels
    Si votre problème est pensez à marquer la conversation comme telle
    Si un message est utile, pertinent, et/ou vous êtes d'accord avec, pensez à à l'inverse s'il est inutile, faux ou que vous n'êtes pas d'accord, pensez à

  5. #5
    Membre à l'essai
    Femme Profil pro
    Etudiante
    Inscrit en
    Mai 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Mai 2016
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Ah d'accord.. Je n'avais pas compris avec le switch..Désolée...

    Bon donc je finis avec:
    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
    package com.example.administrateur.applicationdeux;
     
    import android.content.Intent;
    import android.provider.MediaStore;
    import android.support.v7.app.AppCompatActivity;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.LinearLayout;
    import android.widget.RadioButton;
    import android.widget.RadioGroup;
    import android.widget.Toast;
    import android.view.View.OnClickListener;
    import android.view.View.OnKeyListener;
     
    public class MainActivity extends AppCompatActivity {
        private Button btnValider;
        private final int CODE_REQJEU = 1000;
        private RadioButton radio;
        private RadioGroup group;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            final Button btnValider = (Button) findViewById(R.id.Valider);
            //depart.setOnClickListener(this);
     
            //on initialise le groupe de radio bouton
            group = (RadioGroup) findViewById(R.id.radioGroup1);
     
     
            //@Override
            btnValider.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
     
                    //Détermine le boutonRadio
                    RadioButton radio = (RadioButton)findViewById(group.getCheckedRadioButtonId());
                    //Definir le bouton radio
                    String choix = radio.getText().toString();
     
                    Intent intent;
                    switch(choix)
                    {
                        case "Bureau1" :
                            intent = new Intent(MainActivity.this, Bureau1.class);
                            startActivityForResult(intent, CODE_REQJEU);
                            break;
                        case "Bureau2" :
                            intent = new Intent(MainActivity.this, Bureau2.class);
                            startActivityForResult(intent, CODE_REQJEU);
                            break;
     
                        default :
                            //erreur? ou choix invalide ?
                    }//FinIntent
     
     
     
                }//FinOnclick
            });//FinOnClickListener
     
        }//FinOnCreate
    }//FinMainActivity
    Mais en cliquant sur le bouton valider ça ne n'envoie plus sur aucune page...

    J'ai donc créée un onglet Bureau1.java et Bureau2.java
    Ayant pour code:
    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
    package com.example.administrateur.applicationdeux;
     
    import android.content.Intent;
    import android.provider.MediaStore;
    import android.support.v7.app.AppCompatActivity;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.LinearLayout;
    import android.widget.RadioButton;
    import android.widget.RadioGroup;
    import android.widget.Toast;
    import android.widget.Button;
     
     
    public class Bureau1 extends MainActivity
    {
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.bureau_un);
     
            Bundle extras= getIntent().getExtras();
            if(extras != null)
            {
                String newString=extras.getString("send");
                Toast.makeText(Bureau1.this,newString, Toast.LENGTH_SHORT).show();
            }
     
     
     
     
        }//FinOnCreate
    }//FinClass

  6. #6
    Membre éprouvé Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Points : 1 014
    Points
    1 014
    Par défaut
    Je pense que s'il ne se passe rien c'est que tu ne rentre dans aucun case. Le texte de tes RadioButton correspond bien à tes case ?

    Je te conseille pour t'aider à débugger ton appli de te mettre des log aux endroits clefs
    ici rajoute ça juste avant ton switch : Log.d("MainActivity", "OnClick : Choix : " + choix);.


    Autre chose, tes bureau extends MainActivity, est-ce bien ce que tu veux ? Sinon fait plutôt extends AppCompatActivity
    "On sera toujours mieux installé assis en 1ère que debout en 2nde", un illustre inconnu


    Avant de poser une question vérifiez si elle n'a pas déjà une réponse dans les cours et tutoriels
    Si votre problème est pensez à marquer la conversation comme telle
    Si un message est utile, pertinent, et/ou vous êtes d'accord avec, pensez à à l'inverse s'il est inutile, faux ou que vous n'êtes pas d'accord, pensez à

  7. #7
    Membre à l'essai
    Femme Profil pro
    Etudiante
    Inscrit en
    Mai 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Mai 2016
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Ah c'était le texte.. J'avais mit l'id..
    Mais en mettant le texte, quand je clique sur "valider" cela me met que "l'application s'est arrêtée".

    D'accord j'ai remis "extends AppCompatActivity". J'avais mis "extends MainActivty" en pensant que les sous-classes, Bureau1 et Bureau2 hériteraient de la classe mère MainActivity.

    Je suis vraiment désolée j'ai essayé de regarder comment utiliser le debug d'androidStudio... Mais je ne pense que j'ai réussis...
    Quand je l'ai démarré j'ai la page View.java qui s'est ouverte:
    Nom : nullable.PNG
Affichages : 595
Taille : 23,3 Ko


    Pour les noms j'ai bien remis par rapport au code dans mon xml:
    Nom : xml.PNG
Affichages : 562
Taille : 14,7 Ko


    Et sinon j'ai essayé de mettre des points d'arrêt pour savoir ou cela bug... Et si j'ai bien compris, il a réussit à me récupérer la valeur mais cela cesse de fonctionner au niveau du "break;" et c'est ce qui ferait que mon application s'arrête directement...

    Et donc j'ai aussi remit le log que vous m'avez dit.. Et j'ai mis l'import: "import android.util.Log;"

    Nom : debug1.PNG
Affichages : 610
Taille : 26,0 Ko



    Après mon début d'application se présente ainsi:
    Nom : Telephone.PNG
Affichages : 562
Taille : 112,2 Ko


    Et donc pour le moment dans mes deux autres pages Bureau1 et Bureau2.java elles sont vides.

  8. #8
    Membre éprouvé Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Points : 1 014
    Points
    1 014
    Par défaut
    Si tu peux, effectivement utilise plutôt l'ID (c'est une constante c'est plus facilement modifiable).
    Dans ce cas fait :
    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int choix = radio.getID();
    switch(choix){
        case R.id.Bureau1 :
            //ton code
        case R.id.Bureau2 :
            //etc...
    }

    Extends MainActivity que si tu souhaite que tes autres activités soient des "sous-classes" de Main activité. Sinon extends AppCompatActivity.


    Pour le Debug, Dans Android Studio, tu as une sous-fenêtre "Android Monitor". C'est là que tu vas voir les retours de ton code. Il faudrait y regarder le message d'erreur qui doit apparaître quand ton application plante.
    "On sera toujours mieux installé assis en 1ère que debout en 2nde", un illustre inconnu


    Avant de poser une question vérifiez si elle n'a pas déjà une réponse dans les cours et tutoriels
    Si votre problème est pensez à marquer la conversation comme telle
    Si un message est utile, pertinent, et/ou vous êtes d'accord avec, pensez à à l'inverse s'il est inutile, faux ou que vous n'êtes pas d'accord, pensez à

  9. #9
    Membre à l'essai
    Femme Profil pro
    Etudiante
    Inscrit en
    Mai 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Mai 2016
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Voilà voilà !

    Bon je crois que ça fonctionne...
    Mon code doit être bancal, je pense mais les trois pages de tests fonctionnent...



    J'aurais juste une question j'ai dû

    Mettre ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private void finish(int i)
        {
     
        }
    Pour éviter d'avoir d'avoir le:

    [code]finish(1);[code]

    En souligné avec cette erreur:
    Nom : finish2.png
Affichages : 585
Taille : 3,2 Ko

    Et donc à la place de laisser ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //String choix = radio.getText().toString();
    J'ai remplacé par cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int choix = radio.getId();
    C'est correct ?

    Code entier du bouton:
    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
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    package com.example.administrateur.applicationdeux;
     
    import android.content.Intent;
    import android.provider.MediaStore;
    import android.support.v7.app.AppCompatActivity;
    import android.app.Activity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.LinearLayout;
    import android.widget.RadioButton;
    import android.widget.RadioGroup;
    import android.widget.Toast;
    import android.view.View.OnClickListener;
    import android.view.View.OnKeyListener;
     
    public class MainActivity extends AppCompatActivity {
        private Button btnValider;
        private final int CODE_REQJEU = 1000;
        private RadioButton radio;
        private RadioGroup group;
        private int choix;
     
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            final Button btnValider = (Button) findViewById(R.id.Valider);
            //depart.setOnClickListener(this);
            //on initialise le groupe de radio bouton
            group = (RadioGroup) findViewById(R.id.radioGroup1);
     
     
            //@Override
            btnValider.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
     
                    //Détermine le boutonRadio
                    RadioButton radio = (RadioButton)findViewById(group.getCheckedRadioButtonId());
                    //Definir le bouton radio
                    //String choix = radio.getText().toString();
     
                    Intent intent;
                    Log.d("MainActivity", "OnClick : Choix : " + choix);
                    int choix = radio.getId();
                    switch(choix)
                    {
                        case R.id.Bureau1 :
                            intent = new Intent(MainActivity.this, Bureau1.class);
                            startActivityForResult(intent, CODE_REQJEU);
                            break;
                        case R.id.Bureau2 :
                            intent = new Intent(MainActivity.this, Bureau2.class);
                            startActivityForResult(intent, CODE_REQJEU);
                            break;
                        case R.id.Bureau3 :
                            intent = new Intent(MainActivity.this, Bureau3.class);
                            startActivityForResult(intent, CODE_REQJEU);
                            break;
     
                        default :
                            //erreur? ou choix invalide ?
                    }//FinIntent
     
     
     
                }//FinOnclick
            });//FinOnClickListener
     
        }//FinOnCreate
     
        protected void onResume(int resultCode){
            if (resultCode == 1){
                // tu reviens de bureau 1
            }
            else if (resultCode == 2){
                // tu reviens de bureau 2
            }
            else if (resultCode == 3){
                // tu reviens de bureau 3
            }
            // etc ...
        }
     
     
     
     
     
    }//FinMainActivity

  10. #10
    Membre éprouvé Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Points : 1 014
    Points
    1 014
    Par défaut
    Si tu as une erreur sur finish(), c'est simplement parce que cette fonction ne prend pas d'argument

    Après ton code de lancement des activités est correct.

    Tu as juste un souci sur le onResume(), il faut que tu laisse le @Override (ceci indique que tu surcharge la fonction). Et il ne faut pas lui définir d'arguments.
    "On sera toujours mieux installé assis en 1ère que debout en 2nde", un illustre inconnu


    Avant de poser une question vérifiez si elle n'a pas déjà une réponse dans les cours et tutoriels
    Si votre problème est pensez à marquer la conversation comme telle
    Si un message est utile, pertinent, et/ou vous êtes d'accord avec, pensez à à l'inverse s'il est inutile, faux ou que vous n'êtes pas d'accord, pensez à

  11. #11
    Membre à l'essai
    Femme Profil pro
    Etudiante
    Inscrit en
    Mai 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Mai 2016
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Bah là pour le finish j'essaye d'utiliser ce tutoriel:
    http://stackoverflow.com/questions/1...ult-on-android

    D'accord.

    Donc ce qui donnerait pour mon onResume ceci ?
    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
    @Override
        protected void onResume()
        {
            int resultCode = 0;
            super.onResume();
     
            if (resultCode == 1){
                // tu reviens de bureau 1
            }
            else if (resultCode == 2){
                // tu reviens de bureau 2
            }
            else if (resultCode == 3){
                // tu reviens de bureau 3
            }
            // etc ...
        }



    Car dans le tutoriel, ils disent d'utiliser un "onActivityResult" alors que moi j'utilise un "onResume"




    Donc pour mon MainActivity.java
    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
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
     
    package com.example.administrateur.applicationdeux;
     
            import android.content.Intent;
            import android.provider.MediaStore;
            import android.support.v7.app.AppCompatActivity;
            import android.app.Activity;
            import android.os.Bundle;
            import android.util.Log;
            import android.view.View;
            import android.widget.Button;
            import android.widget.LinearLayout;
            import android.widget.RadioButton;
            import android.widget.RadioGroup;
            import android.widget.Toast;
            import android.view.View.OnClickListener;
            import android.view.View.OnKeyListener;
     
    public class MainActivity extends AppCompatActivity {
        private Button btnValider;
        private final int CODE_REQJEU = 1000;
        private RadioButton radio;
        private RadioGroup group;
        private int choix;
     
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
     
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            final Button btnValider = (Button) findViewById(R.id.Valider);
            //depart.setOnClickListener(this);
            //on initialise le groupe de radio bouton
            group = (RadioGroup) findViewById(R.id.radioGroup1);
     
     
            //@Override
            btnValider.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
     
                    //Détermine le boutonRadio
                    RadioButton radio = (RadioButton)findViewById(group.getCheckedRadioButtonId());
                    //Definir le bouton radio
                    //String choix = radio.getText().toString();
     
                    Intent intent;
                    Log.d("MainActivity", "OnClick : Choix : " + choix);
                    int choix = radio.getId();
                    switch(choix)
                    {
                        case R.id.Bureau1 :
                            intent = new Intent(MainActivity.this, Bureau1.class);
                            startActivityForResult(intent, 1);
                            break;
                        case R.id.Bureau2 :
                            intent = new Intent(MainActivity.this, Bureau2.class);
                            startActivityForResult(intent, 2);
                            break;
                        case R.id.Bureau3 :
                            intent = new Intent(MainActivity.this, Bureau3.class);
                            startActivityForResult(intent, 3);
                            break;
     
                        default :
                            //erreur? ou choix invalide ?
                    }//FinIntent
     
     
     
                }//FinOnclick
            });//FinOnClickListener
     
        }//FinOnCreate
     
        @Override
        protected void onResume()
        {
            int resultCode = 0;
            super.onResume();
     
            if (resultCode == 1){
                // tu reviens de bureau 1
            }
            else if (resultCode == 2){
                // tu reviens de bureau 2
            }
            else if (resultCode == 3){
                // tu reviens de bureau 3
            }
            // etc ...
        }
     
    }//FinMainActivity


    Et pour mon Bureau1.java
    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
    package com.example.administrateur.applicationdeux;
     
    import android.content.Intent;
    import android.provider.MediaStore;
    import android.support.v7.app.AppCompatActivity;
    import android.app.Activity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.LinearLayout;
    import android.widget.RadioButton;
    import android.widget.RadioGroup;
    import android.widget.Toast;
    import android.widget.Button;
     
     
    public class Bureau1 extends MainActivity
    {
        int resultCode;
     
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.bureau_un);
     
            Bundle extras= getIntent().getExtras();
            if(extras != null)
            {
                String newString=extras.getString("send");
                Toast.makeText(Bureau1.this,newString, Toast.LENGTH_SHORT).show();
            }
     
            Intent returnIntent = new Intent();
            setResult(MainActivity.RESULT_CANCELED, returnIntent);
            finish();
     
     
        }//FinOnCreate
     
     
    }//FinClass




    Donc pour que mon onResume fonctionne j'ai initialiser "resultCode".

    Mais je crois qu'il faut que je rajoute un code là où il y a les commentaires "// tu reviens de bureau 1"
    Mais c'est ce que je disais plus haut, ce qui ressemble à mon code c'est ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     
        if (requestCode == 1) {
            if(resultCode == Activity.RESULT_OK){
                String result=data.getStringExtra("result");
            }
            if (resultCode == Activity.RESULT_CANCELED) {
                //Write your code if there's no result
            }
        }
    }//onActivityResult
    Mais je ne sais pas si je peux adapter ce code à un "onResume"...






    Donc après j'ai fais mon bureau1.java:
    et j'ai rajouté ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Intent returnIntent = new Intent();
    setResult(Activity.RESULT_CANCELED, returnIntent);
    finish();
    Car Bureau1.java ne va pas renvoyer de données à l'application MainActivity.java
    Mais j'ai un doute sur l'emplacement du bout de code...

    Car au final plus rien ne fonctionne si j'essaye de refaire comme le tutoriel là...
    Et de même en mettant l'intérieur du code du "onActivityResult" dans mon code "onResume"


    Vraiment désolée pour toutes ces questions... Je dois pas mal embêter... Mais je n'ai vraiment pas fais assez de java je crojs :'(

  12. #12
    Membre éprouvé Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Points : 1 014
    Points
    1 014
    Par défaut
    onResume et onActivityResult sont deux choses bien différentes.

    onResume est une methode qui se lance lorsque ton activité était en arrière plan et qu'elle passe au premier plan.

    onActivityResult est une methode qui se lance lorsque qu'une autre activité se termine. C'est ici qu'il faut traiter le resultat de l'activité qui vient de se fermer.

    Je te conseille les tutos suivants :
    Pour t'aider à comprendre le cycle de vie d'une activité
    Pour tout le reste
    "On sera toujours mieux installé assis en 1ère que debout en 2nde", un illustre inconnu


    Avant de poser une question vérifiez si elle n'a pas déjà une réponse dans les cours et tutoriels
    Si votre problème est pensez à marquer la conversation comme telle
    Si un message est utile, pertinent, et/ou vous êtes d'accord avec, pensez à à l'inverse s'il est inutile, faux ou que vous n'êtes pas d'accord, pensez à

  13. #13
    Membre à l'essai
    Femme Profil pro
    Etudiante
    Inscrit en
    Mai 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Mai 2016
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Donc là actuellement dans mon application je dois donc intégrer le onResume et le onActivityResult Pour mon passage de bouton radio à une autre page ?

    Merci pour les liens

  14. #14
    Membre éprouvé Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Points : 1 014
    Points
    1 014
    Par défaut
    Dans ton application le onResume a peu d'interêt (pour l'instant du moins). Tu peux donc ne pas le mettre ou le mettre en ne faisant que le super.onResume(); dedans.

    Par contre il te faut implémenter le onActivityResult afin de savoir de quelle activité tu reviens.
    "On sera toujours mieux installé assis en 1ère que debout en 2nde", un illustre inconnu


    Avant de poser une question vérifiez si elle n'a pas déjà une réponse dans les cours et tutoriels
    Si votre problème est pensez à marquer la conversation comme telle
    Si un message est utile, pertinent, et/ou vous êtes d'accord avec, pensez à à l'inverse s'il est inutile, faux ou que vous n'êtes pas d'accord, pensez à

  15. #15
    Membre à l'essai
    Femme Profil pro
    Etudiante
    Inscrit en
    Mai 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Mai 2016
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Bon je reviens car je n'arrive encore pas à régler mon problème...

    Mon MainActivity.java
    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
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
    package com.example.administrateur.applicationdeux;
     
            import android.content.Intent;
            import android.provider.MediaStore;
            import android.support.v7.app.AppCompatActivity;
            import android.app.Activity;
            import android.os.Bundle;
            import android.util.Log;
            import android.view.View;
            import android.widget.Button;
            import android.widget.LinearLayout;
            import android.widget.RadioButton;
            import android.widget.RadioGroup;
            import android.widget.Toast;
            import android.view.View.OnClickListener;
            import android.view.View.OnKeyListener;
     
    public class MainActivity extends AppCompatActivity implements OnClickListener {
        private Button btnValider;
        private final int CODE_REQJEU = 1000;
        private RadioButton radio;
        private RadioGroup group;
        private int choix;
     
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
     
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            final Button btnValider = (Button) findViewById(R.id.Valider);
            group = (RadioGroup) findViewById(R.id.radioGroup1);
     
     
        }//FinOnCreate
     
            //btnValider.setOnClickListener(new View.OnClickListener() {
           // public OnClickListener radio_listener = new OnClickListener() {
                @Override
                public void onClick(View v) {
     
                   // Intent intent = new Intent();
     
                    //Détermine le boutonRadio
                    RadioButton radio = (RadioButton)findViewById(group.getCheckedRadioButtonId());
                    //Definir le bouton radio
                    String choix = radio.getText().toString();
                    btnValider.setOnClickListener(MainActivity.this);
     
     
     
                } //FinOnclick
     
     
                protected void onActivityResult(Intent data) {
                    //Intent intent;
                    Intent intent = new Intent();
                    Log.d("MainActivity", "OnClick : Choix : " + choix);
                    int choix = radio.getId();
     
                    switch (choix) {
                        case R.id.Bureau1:
                            intent = new Intent(MainActivity.this, Bureau1.class);
                            startActivityForResult(intent, 1);
                            break;
                        case R.id.Bureau2:
                            intent = new Intent(MainActivity.this, Bureau2.class);
                            startActivityForResult(intent, 2);
                            break;
                        case R.id.Bureau3:
                            intent = new Intent(MainActivity.this, Bureau3.class);
                            startActivityForResult(intent, 3);
                            break;
     
     
                    }//FinSwitch
     
                }//FinOnActivity
     
     
     
     
     
     
     
     
     
           // };//FinOnClickListener
     
     
    }//FinMainActivity

    Mon Bureau1.java
    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
    package com.example.administrateur.applicationdeux;
     
    import android.content.Intent;
    import android.provider.MediaStore;
    import android.support.v7.app.AppCompatActivity;
    import android.app.Activity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.LinearLayout;
    import android.widget.RadioButton;
    import android.widget.RadioGroup;
    import android.widget.Toast;
    import android.widget.Button;
     
     
    public class Bureau1 extends MainActivity
    {
        int resultCode;
     
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.bureau_un);
     
            Intent returnIntent = new Intent();
            Bundle extras= getIntent().getExtras();
            /*if(extras != null)
            {
                String newString=extras.getString("send");
                Toast.makeText(Bureau1.this,newString, Toast.LENGTH_SHORT).show();
            }*/
     
            setResult(MainActivity.RESULT_CANCELED, returnIntent);
            finish();
     
     
        }//FinOnCreate
     
     
    }//FinClass
    Je pense que j'utilise mal le "onActivityResult" et en essayant de l'utiliser, je pense qu'il manque l'action dans le "onClick" pour dire que l'on lance une application ?
    Mon application continue de se fermer quand je cloque sur le bouton valider...

  16. #16
    Membre éprouvé Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Points : 1 014
    Points
    1 014
    Par défaut
    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 com.example.administrateur.applicationdeux;
     
    import android.content.Intent;
    import android.provider.MediaStore;
    import android.support.v7.app.AppCompatActivity;
    import android.app.Activity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.LinearLayout;
    import android.widget.RadioButton;
    import android.widget.RadioGroup;
    import android.widget.Toast;
    import android.view.View.OnClickListener;
    import android.view.View.OnKeyListener;
     
    public class MainActivity extends AppCompatActivity implements OnClickListener {
        private Button btnValider;
        private final int CODE_REQJEU = 1000;
        private RadioGroup group;
     
        private View.OnClickListener btnValiderListener = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //Détermine le boutonRadio
                RadioButton radio = (RadioButton)findViewById(group.getCheckedRadioButtonId());
                //Definir le bouton radio
                int choix = radio.getId();
     
                switch (choix) {
                        case R.id.Bureau1:
                            intent = new Intent(MainActivity.this, Bureau1.class);
                            startActivityForResult(intent, 1);
                            break;
                        case R.id.Bureau2:
                            intent = new Intent(MainActivity.this, Bureau2.class);
                            startActivityForResult(intent, 2);
                            break;
                        case R.id.Bureau3:
                            intent = new Intent(MainActivity.this, Bureau3.class);
                            startActivityForResult(intent, 3);
                            break;
     
     
                    }//FinSwitch
     
            } //FinOnclick
        };
     
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
     
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            btnValider = (Button) findViewById(R.id.Valider);
            group = (RadioGroup) findViewById(R.id.radioGroup1);
     
            btnValider.setOnClickListener(btnValiderListener);
     
     
        }//FinOnCreate
     
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     
            //Ici tu récupère des informations sur l'activité qui vient de se finir (soit bureau1 ou bureau2, etc.)
            //Et ici tu execute un code s'il y a besoin de faire quelque chose sur la fin des bureaux
            //sinon, ne fait rien dans cette fonction
     
        }//FinOnActivity
     
     
    }//FinMainActivity
    "On sera toujours mieux installé assis en 1ère que debout en 2nde", un illustre inconnu


    Avant de poser une question vérifiez si elle n'a pas déjà une réponse dans les cours et tutoriels
    Si votre problème est pensez à marquer la conversation comme telle
    Si un message est utile, pertinent, et/ou vous êtes d'accord avec, pensez à à l'inverse s'il est inutile, faux ou que vous n'êtes pas d'accord, pensez à

  17. #17
    Membre à l'essai
    Femme Profil pro
    Etudiante
    Inscrit en
    Mai 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Mai 2016
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Bonjour,
    Je suis désolée Drowan mais j'ai utilisé l'autre technique, car ta technique ne fonctionnait pas. En intégrant le bouton valider directemment dans le code, cela ne fonctionnait pas.
    J'ai essayé une autre technique l'on m'a dite en utilisant le "onClick"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Valider"
        android:id="@+id/Valider"
        android:layout_gravity="center_horizontal"
        android:onClick="validation"/>
    Donc le MainActivity.java
    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
     
    package com.example.administrateur.applicationdeux;
     
    import android.content.Intent;
    import android.provider.MediaStore;
    import android.support.v7.app.AppCompatActivity;
    import android.app.Activity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.LinearLayout;
    import android.widget.RadioButton;
    import android.widget.RadioGroup;
    import android.widget.Toast;
    import android.view.View.OnClickListener;
    import android.view.View.OnKeyListener;
     
    public class MainActivity extends AppCompatActivity {
     
        private RadioGroup radioGroup1;
        private Button Valider;
        private final int CODE_REQJEU = 1000;
        private RadioButton radio;
     
     
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            radioGroup1 = (RadioGroup) findViewById(R.id.radioGroup1);
        }//FinOnCreate
     
     
        public void validation(View view)
        {
            Intent intent = new Intent();
            //Détermine le boutonRadio
            RadioButton radio = (RadioButton)findViewById(radioGroup1.getCheckedRadioButtonId());
            //Definir le bouton radio
            int choix = radio.getId();
     
     
            Log.d ("MainAcitivty" , "OnClick: Choix: " + choix + " Choix1: " + R.id.Bureau1 + " Choix2: " + R.id.Bureau2 + " Choix3: " + R.id.Bureau3);
            switch(choix)
            {
                case R.id.Bureau1 :
                    intent = new Intent(MainActivity.this, Bureau1.class);
                    break;
                case R.id.Bureau2 :
                    intent = new Intent(MainActivity.this, Bureau2.class);
                    break;
                case R.id.Bureau3 :
                    intent = new Intent(MainActivity.this, Bureau3.class);
                    break;
     
                default :
                    // afficher "erreur" + quitter
            }//FinSwitch
     
            startActivityForResult(intent, CODE_REQJEU);
     
        }//FinValidation
    }//FinMainActivity
    Sauf que ce code ne fonctionne pas non plus... Et l'autre personne ne comprend pas pourquoi... J'ai fais aussi un log, donc j'ai sélectionné le bouton radio 1 et cliqué sur valider, puis le 2 et valider et enfin le 3 et valider, et voilà ce que le logCat m'a donné:

    Nom : lodD.png
Affichages : 574
Taille : 25,6 Ko

    L'autre personne m'a interprété le résultat est m'a dit:
    "La on peut voir que la valeur de "choix" est bien égale à la valeur de "R.id.Bureau1" au premier clic, puis a "R.id.Bureau2" au 2eme clic, puis a "R.id.Bureau3" au 3eme clic.

    le problème c'est que du coup je vois pas d'où viens le problème... les valeurs sont bien égales donc ça devrait passer dans le switch... mais le startActvity passe pas..."

    Donc je ne suis pas plus avancé...

    J'ai donc testé ceci:
    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
    public void validation(View view)
        {
            Intent intent = new Intent();
            /*//Détermine le boutonRadio
            RadioButton radio = (RadioButton)findViewById(radioGroup1.getCheckedRadioButtonId());
            //Definir le bouton radio
            int choix = radio.getId();*/
     
            boolean checked = ((RadioButton) view).isChecked();
     
     
           // Log.d ("MainAcitivty" , "OnClick: Choix: " + choix + " Choix1: " + R.id.Bureau1 + " Choix2: " + R.id.Bureau2 + " Choix3: " + R.id.Bureau3);
            switch(view.getId()) {
                case R.id.Bureau1:
                    if (checked) {
                        intent = new Intent(MainActivity.this, Bureau1.class);
                        break;
                    }
                case R.id.Bureau2:
                    if (checked){
                        intent = new Intent(MainActivity.this, Bureau2.class);
                    break;
                         }
                case R.id.Bureau3 :
                    if (checked) {
                        intent = new Intent(MainActivity.this, Bureau3.class);
                        break;
                    }
                default :
                    // afficher "erreur" + quitter
            }//FinSwitch
     
            startActivityForResult(intent, CODE_REQJEU);
     
        }//FinValidation

    Mais rien de plus concluant... Donc voilà ... Si quelqu'un pouvait m'aider... Merci...

  18. #18
    Membre éprouvé Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Points : 1 014
    Points
    1 014
    Par défaut
    Salut,

    La technique que tu utilises (onClick) est tout aussi valable et tout aussi bien

    Ton souci viens du fait que tu fais ton switch sur view.getId() ce qui n'est pas du tout la même chose que choix.

    Ici view est le bouton valider sur lequel tu as appuyé. Son ID ne correspond donc à aucune valeur qui t'interesse. Tandis que ta variable choix contient la bonne information puisque lorsque tu l'affiches en log tu as pu véréfier que c'était bon.

    Il faut juste faire ton switch sur la variable choix.
    "On sera toujours mieux installé assis en 1ère que debout en 2nde", un illustre inconnu


    Avant de poser une question vérifiez si elle n'a pas déjà une réponse dans les cours et tutoriels
    Si votre problème est pensez à marquer la conversation comme telle
    Si un message est utile, pertinent, et/ou vous êtes d'accord avec, pensez à à l'inverse s'il est inutile, faux ou que vous n'êtes pas d'accord, pensez à

  19. #19
    Membre à l'essai
    Femme Profil pro
    Etudiante
    Inscrit en
    Mai 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Mai 2016
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Tu me parles du dernier code ?
    Car moi j'ai laissé celui sans les boucles if, donc le code un peu plus haut.
    Il faut que je garde le code avec les boucles if ?

    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
    public void validation(View view)
        {
            Intent intent = new Intent();
            /*//Détermine le boutonRadio
            RadioButton radio = (RadioButton)findViewById(radioGroup1.getCheckedRadioButtonId());
            //Definir le bouton radio*/
            int choix = radio.getId();
     
            boolean checked = ((RadioButton) view).isChecked();
     
     
            // Log.d ("MainAcitivty" , "OnClick: Choix: " + choix + " Choix1: " + R.id.Bureau1 + " Choix2: " + R.id.Bureau2 + " Choix3: " + R.id.Bureau3);
            switch(choix) {
                case R.id.Bureau1:
                    if (checked) {
                        intent = new Intent(MainActivity.this, Bureau1.class);
                    } break;
     
                case R.id.Bureau2:
                    if (checked){
                        intent = new Intent(MainActivity.this, Bureau2.class);
                    }  break;
     
                case R.id.Bureau3 :
                    if (checked) {
                        intent = new Intent(MainActivity.this, Bureau3.class);
                    }  break;
     
                default :
                    // afficher "erreur" + quitter
            }//FinSwitch
     
            startActivityForResult(intent, CODE_REQJEU);
     
        }//FinValidation
    Donc j'ai fais ceci. Mais je ne sais pas où fermer mes accolades, avant ou après le break ?
    Dans les deux cas j'ai essayé et j'ai un message d'erreur qui me dit que l'application à dû se fermer.

  20. #20
    Membre éprouvé Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Points : 1 014
    Points
    1 014
    Par défaut
    Pardon, je me suis embrouillé en lisant tes deux codes

    Celui avec les if n'est pas bon, l'autre semble correct en effet.

    Tu peux l'améliorer en faisant juste Intent intent; au lieu de Intent intent = new Intent(); à la ligne 39.

    Sinon je ne vois pas ce qui peut faire que ça ne marche pas...
    Est-ce que tes activités sont bien déclarées dans ton manifest ?
    "On sera toujours mieux installé assis en 1ère que debout en 2nde", un illustre inconnu


    Avant de poser une question vérifiez si elle n'a pas déjà une réponse dans les cours et tutoriels
    Si votre problème est pensez à marquer la conversation comme telle
    Si un message est utile, pertinent, et/ou vous êtes d'accord avec, pensez à à l'inverse s'il est inutile, faux ou que vous n'êtes pas d'accord, pensez à

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Débutant] Comment ouvrir une table access avec un bouton VB
    Par znai1303 dans le forum VB.NET
    Réponses: 13
    Dernier message: 05/02/2013, 16h15
  2. [Débutant] Ouvrir une fenetre IE avec des dimensions definies
    Par jubourbon dans le forum Langages
    Réponses: 1
    Dernier message: 29/01/2013, 11h21
  3. Select activable avec des boutons radio (IE :S)
    Par Fabthebug dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/09/2009, 16h49
  4. Récupération d'information avec des boutons radio
    Par fred19732 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 10/05/2009, 21h23
  5. Problème avec des Boutons Radio
    Par Spinoza23 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 01/02/2007, 14h59

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