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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Etudiante
    Inscrit en
    Mai 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Mai 2016
    Messages : 17
    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 chevronné 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 : 30
    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
    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.

  3. #3
    Membre averti
    Femme Profil pro
    Etudiante
    Inscrit en
    Mai 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Mai 2016
    Messages : 17
    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 chevronné 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 : 30
    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
    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 ?
    }

  5. #5
    Membre averti
    Femme Profil pro
    Etudiante
    Inscrit en
    Mai 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Mai 2016
    Messages : 17
    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 chevronné 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 : 30
    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
    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

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

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, 15h15
  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, 10h21
  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, 15h49
  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, 20h23
  5. Problème avec des Boutons Radio
    Par Spinoza23 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 01/02/2007, 13h59

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