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 :

Clic sur élément d'un tableau


Sujet :

Android

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 33
    Points : 23
    Points
    23
    Par défaut Clic sur élément d'un tableau
    Salut,

    Je débute sous android et j'ai un petit soucis pour l'affichage d'une page après un clic.
    Je m'explique, j'ai une page qui contient un tableau, quand je clique sur un certain élément du tableau une nouvelle page doit s'afficher.
    Les pages sont créées en xml et pas en java.

    Mon problème est le suivant : après avoir cliqué sur l'élément du tableau pour changer de page, la nouvelle page apparaît bien, par contre si après je change l'orientation du tel, c'est la première page qui apparaît et non celle qui était en cours.


    Voici mon 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
    public class list_produits extends Activity{
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.list_produits);
        }
     
            public void onClick(View v){
            	if (v.getId() == R.id.feat_name1) {
    				setContentView(R.layout.list_produits_prix);
            	}
            }
     
    }
    Merci pour votre aide

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    En effet, cela est "normal".
    Lors d'un changement d'orientation, la méthode on create est appelée, car la page doit être détruite puis reconstruite

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 33
    Points : 23
    Points
    23
    Par défaut
    Merci, donc maintenant je comprends pourquoi ça me fait ça.

    Il faut donc créer une nouvelle activité ?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    Soit envoyer vers une nouvelle activity, soit enregistrer l'endroit où tu viens de cliquer.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 33
    Points : 23
    Points
    23
    Par défaut
    Enregistrer l'endroit où je viens de cliquer ?
    J'ai peur de ne pas comprendre cette phrase

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    Je m'explique :
    Quand la méthode onClick(View v) est appelée, c'est une View qui l'appelle.
    Tu peux donc récupérer l'identifiant de cette View avec v.getId() et l’enregistrer en variable globale.

    Une fois enregistrée, si tu tourne ton téléphone, tu connaitra toujours la dernière View cliquée, tu pourra donc modifier ton affichage en fonction de cet identifiant

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 33
    Points : 23
    Points
    23
    Par défaut
    Merci pour ta réponse, mais ca ne fonctionne toujours pas. Je fais surement quelque chose qui ne va pas.
    Voici mon nouveau 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
    36
    37
    38
    39
    40
    41
     
    public class list_produit extends Activity{
    	int id_view;
     
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
     
     
        	if (id_view ==0) {
        		Log.d("blabla", Integer.toString(id_view));
        		setContentView(R.layout.list_produit);
        	}
        	else
        	{	
        		Log.d("blabla", Integer.toString(id_view));
        		setContentView(id_view);
        	}
     
        }
     
     
            public void onClick(View v){
            	id_view= v.getId();
            	Log.d("blabla", Integer.toString(id_view));
            	if (v.getId() == R.id.feat_name1) {
    				setContentView(R.layout.list_produit);
            	}
            	if (v.getId() == R.id.feat_name9) {
            		setContentView(R.layout.list_produit_prix);
            	}
            	if (v.getId() == R.id.feat_name13) {
    				setContentView(R.layout.list_produit_autre);
            	}
     
            }
     
     
     
    }
    Le problème c'est que quand je tourne l'écran, mon id_view revient à 0. donc réaffiche la première page.

    Ou est-ce que je fais faux ?

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    Essaye de le déclarer en tant que :

  9. #9
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Citation Envoyé par Simonmarky Voir le message
    Essaye de le déclarer en tant que :
    Bonjour,

    on peut faire plus propre en sauvegardant les donnée avant la rotation.

    Un exemple :
    http://stackoverflow.com/questions/1...ications-state
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 33
    Points : 23
    Points
    23
    Par défaut
    Merci ! En effet maintenant dans le logcat j'ai le bon id_view et ca fonctionne !




    edit : je vais regarder ton idée Feanorin. Merci

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 322
    Points : 494
    Points
    494
    Par défaut
    Bonjour,
    Je sais que ce topic est résolu, mais j'avais une question.

    Pourquoi ne pas utiliser le paramètre android:configChanges="orientation" pour l'activité dans le manifest ?

    S'il n'a pas créé plusieurs layout (portrait et paysage) pour son activité, il n'y a pas de raison de repasser par le onCreate.

    Est ce qu'il faut mieux utiliser le onSave... quand c'est possible et éviter au maximum le configChanges ?

  12. #12
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Oui... enfin, le probleme réapparaitra dès que l'application sera mise en arriere plan un certain temps (onDestroy/onCreate)....

    Le mieux est *vraiment* d'empecher la rotation de l'appli (par le manifest) ou de stocker l'état dans le savedInstanceState(qui est justement là pour ca).
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 322
    Points : 494
    Points
    494
    Par défaut
    D'accord donc pour toi c'est à éviter à tout prix, car Android est libre de killer les applications qui veut.

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

Discussions similaires

  1. Désactiver redirection d'un lien lors d'un clic sur élément enfant
    Par zouuc dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 16/07/2014, 08h44
  2. Déplacer un élément d'un tableau vers un autre sur clic d'un bouton
    Par Lorenzaccio dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/09/2011, 17h11
  3. Pointeur sur élément d'un tableau multidimensionnel
    Par Blustuff dans le forum Langage
    Réponses: 5
    Dernier message: 12/05/2011, 01h16
  4. Réponses: 8
    Dernier message: 16/03/2008, 21h02
  5. Clic sur élément d'une requete affiché
    Par leloup84 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 08/02/2006, 00h38

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