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 :

Récupérer valeur d'un radioButton dans une nouvelle Activity


Sujet :

Android

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2012
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 199
    Points : 71
    Points
    71
    Par défaut Récupérer valeur d'un radioButton dans une nouvelle Activity
    Bonjour,

    Je suis en train de débuter sous Android et pour commencer j'ai décidé de créer un quizz.
    Pour afficher les résultats de l'utilisateur j'ai besoin de faire passer ses réponses vers une nouvelle activity, afin de faire des calculs et de vérifier par rapport aux bonnes réponses. L e problème c'est que je ne comprend pas malgré plusieurs tutos, comment faire passer ses données vers une nouvelle activity. J'a suivi un tutoriel Android qui le faisait mais avec des editText, comment faire avec des radioButton ?

    Voici un début de code que j'ai réalisé ... :

    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
     
     
    package com.example.quizz;
     
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.RadioButton;
    import android.widget.RadioGroup;
    import android.widget.Toast;
     
    public class ActivityNBA extends Activity {
     
    	//radioQ1Button etc aura pour valeur la réponse de l'utilisateur pour chaque question
    	private RadioGroup radioGroupQ1NBA;
    	private RadioButton radioQ1Button;
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_nba);
            //à l'écoute du bouton Voir les résultats, la méthode addListenerOnButton() ...
            addListenerOnButton();
     
    	}
     
    	public void addListenerOnButton() {
     
    		final Button btnVoirResultatsNBA = (Button) findViewById(R.id.btnVoirResultatsNBA);
     
    		btnVoirResultatsNBA.setOnClickListener(new OnClickListener() {
     
    			@Override
    			public void onClick(View v) {// au clic du bouton
     
    				Intent intent = new Intent(ActivityNBA.this, ActivityVoirResultatsNBA.class);//Création nouvelle activity VoirResultatsNBAs
     
    				int selectedId1 = radioGroupQ1NBA.getCheckedRadioButtonId();// on récupère l'id de la réponse de l'utilisateur
     
    				radioQ1Button = (RadioButton) findViewById(selectedId1);//le bouton prend pour valeur la réponse de l'utilisateur
     
    				intent.getIntExtra(radioGroupQ1NBA, radioQ1Button.getId().to...);			
    				startActivity(intent);//démarrage de la nouvelle activity VoirResultatsNBA	
     
    			}
     
    		});
     
    	}
    }
    C'est arrivé à getIntExtra où je sais vraiment pas comment faire ...

  2. #2
    Membre du Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 36
    Points : 53
    Points
    53
    Par défaut
    tu peux créer une classe qui hérite de ListActivity au lieu de activity, c'est plus simple
    voici un exemple de code d'une ListActivity qui affiche une liste de buttonRadio:
    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
     
    public class ListeChoix extends ListActivity  {
       private TextView selection;
       private enum Semaine {Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi, Dimanche};
     
       @Override
       public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            setListAdapter(new ArrayAdapter<Semaine>(this, android.R.layout.simple_list_item_single_choice, Semaine.values()));
            getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
            selection = (TextView) findViewById(R.id.selection);
       }
     
       @Override
       protected void onListItemClick(ListView l, View v, int position, long id) {
          Semaine semaine = (Semaine) getListAdapter().getItem(position);
          selection.setText(semaine.name());
       } 
    }
    dans ton cas , semaine sera la liste des questions de quiz.
    et dans la méthode onListItemClick, tu récupéras de la même façon la réponse choisie, et tu en fais ce que tu veux (l'envoyer à une autre activité si tu veux..)
    le layout associée à la listActivity doit contenir oblgatoirement une listview dont l'identifiant est 'list' comme celui ci:
    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
     
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:gravity="center"
        tools:context=".MainActivity" >
     
        <ListView android:id="@android:id/list"
            		android:layout_width="wrap_content"
      				android:layout_height="wrap_content"
      				android:scrollbarAlwaysDrawVerticalTrack="true"	 
      				android:scrollbarStyle="outsideOverlay"
      				android:scrollbarSize="20dip"
            ></ListView>
     
    </LinearLayout>

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2012
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 199
    Points : 71
    Points
    71
    Par défaut
    Merci pour ta réponse, mais j'ai bien peur de ne pas avoir tout compris

    Voici le code, adapté à ce que tu m'as dis :

    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
     
     
    package com.example.quizz;
     
    import android.app.ListActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    import android.widget.TextView;
     
    public class ActivityNBA extends ListActivity  {
    	   private TextView questions;
    	   private enum Questions {q1NBA, q2NBA, q3NBA, q4NBA, q5NBA, q6NBA;
     
    	public void setText(String name) {
    		// TODO Auto-generated method stub
     
    	}};
     
    	   @Override
    	   public void onCreate(Bundle savedInstanceState) {
    	        super.onCreate(savedInstanceState);
    	        setContentView(R.layout.activity_nba);
    	        setListAdapter(new ArrayAdapter<Questions>(this, android.R.layout.simple_list_item_single_choice, Questions.values()));
    	        getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
    	        setQuestions((TextView) findViewById(R.id.questions));
    	   }
     
    	   @Override
    	   protected void onListItemClick(ListView l, View v, int position, long id) {
    	      Questions questions = (Questions) getListAdapter().getItem(position);
    	      questions.setText(questions.name());
    	   }
     
    	public void setQuestions(TextView questions) {
    		this.questions = questions;
    	}
     
    	public TextView getQuestions() {
    		return questions;
    	} 
    	}
    Ensuite concernant le layout associé à ListActivity, je le place dans le fichier xml d'ActivityNBA ? Je débute bien ou pas ?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2012
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 199
    Points : 71
    Points
    71
    Par défaut
    J'ai ce problème quand je place la listView : "The vertically scrolling ScrollView should not contain another vertically scrolling widget (ListView)", pouvez-vous m'éclairer ?

    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
     
     
    <?xml version="1.0" encoding="utf-8"?>
    ...
    <Button
            android:id="@+id/btnVoirResultatsNBA"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="14dp"
            android:text="@string/btnVoirResultatsNBA"
            android:textStyle="italic"
            android:width="150dp" />
     
    	    <TextView
    	        android:id="@+id/questions"
    	        android:layout_width="fill_parent" 
        		android:layout_height="fill_parent" 
    	        android:layout_marginLeft="15dp"
    	        android:layout_marginRight="15dp"
    	        android:layout_marginTop="0dp"
    	        android:text="@string/questions"
    	        android:textAppearance="?android:attr/textAppearanceMedium"
    	        android:textColor="#FFFFFF"
    	        android:textSize="10sp"
    	        android:width="300dp" />
     
    	    <ListView android:id="@android:id/list"
            		android:layout_width="wrap_content"
      				android:layout_height="wrap_content"
      				android:scrollbarAlwaysDrawVerticalTrack="true"	 
      				android:scrollbarStyle="outsideOverlay"
      				android:scrollbarSize="20dip" >
    	    </ListView>
     
    	</LinearLayout>
     
    </ScrollView>

  5. #5
    Membre du Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 36
    Points : 53
    Points
    53
    Par défaut
    pour ton code, il me semble correct
    Pour les erreurs sur le layout, visiblement puisque tu as mis ta liste view dans une scroll view, pas besoin d'ajouter des attributs de scrolling dans la liste view

Discussions similaires

  1. [AC-2007] Récupérer valeur d'un TextBox dans une requête
    Par Babacool321 dans le forum VBA Access
    Réponses: 1
    Dernier message: 17/05/2014, 18h15
  2. Récupérer valeurs d'un form dans une autre page html
    Par jacopo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 23/02/2014, 18h25
  3. Affichage des images de la ListView dans une nouvelle Activity
    Par h_ta9wa dans le forum Composants graphiques
    Réponses: 10
    Dernier message: 05/04/2013, 17h22
  4. [AC-2010] Récupérer valeurs liste choix multiple dans une requête
    Par kimai dans le forum VBA Access
    Réponses: 13
    Dernier message: 06/02/2013, 11h39
  5. Réponses: 10
    Dernier message: 20/06/2007, 19h02

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