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 :

Définir layout une fois pour plusieurs views


Sujet :

Composants graphiques Android

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 59
    Points : 47
    Points
    47
    Par défaut Définir layout une fois pour plusieurs views
    Bonjour,
    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
    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
     
    int i=20;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
     
            setContentView(R.layout.tutoriel);
            Button croix = (Button) findViewById(R.id.croix);
            Button before = (Button) findViewById(R.id.before);
            Button after = (Button) findViewById(R.id.after);
            ProgressBar progressBar = (ProgressBar) findViewById(R.id.progressBar);
     
            croix.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    Tutoriel.this.finish();
                }
            });
     
            progressBar.setProgress(i);
     
            after.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    setContentView(R.layout.tutoriel1);
                    Button croix = (Button) findViewById(R.id.croix);
                    Button before = (Button) findViewById(R.id.before);
                    Button after = (Button) findViewById(R.id.after);
                    ProgressBar progressBar = (ProgressBar) findViewById(R.id.progressBar);
                    i+=20;
                    progressBar.setProgress(i);
     
                    croix.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View arg0) {
                            // TODO Auto-generated method stub
                            Tutoriel.this.finish();
                        }
                    });
                }
            });
    Mon problème est le suivant. Je voudrais, étant donné que j'ai des boutons qui sont les mêmes entre mes vues, les définir qu'une seul fois. Par exemple mon bouton croix sert à quitter l'activité. Or si je change de vue en appuyant sur after je suis obligé de redéfinir que croix est un bouton en le recherchant par son id et ensuite de dire qu'au click ça fait quitter l'activité.

    Je voudrais donc que ce que j'ai définit après la 1ere setContentView soit valable pour les autres vues. Sinon ca devient interminable et je dois tout répéter...

    Merci d'avance !

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Défini une seul fois ce qui est commun et charge le contenu variable via des fragments.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    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
    Il y a plusieurs choix possibles....

    Une "Activity" générique qui s'occupera des éléments "clés" de l'interface (et toujours présents ?).
    L'utilisation de <include> dans les XML de layout histoire de récupérer ces éléments de manière systématique dans chaque layout d'activity en héritant.

    Une "Activity" globale qui s'occupe des éléments clés de l'interface. Et un layout avec un "placeholder" pour le contenu dynamique.
    Des "Fragments" qui gèrent le contenu dynamique (en remplacement du "placeholder" ci-dessus).

    Bref... plein de possibilités (les deux ci-dessus ne sont certainement pas les seules).

    Dans tous les cas, une "croix" pour fermer l'application... sous android... c'est un grand "NON" !
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 59
    Points : 47
    Points
    47
    Par défaut
    Merci de vos réponses.
    La ou j'ai un problème c'est pour associer le java à mes éléments xml. Du coup pas de problème avec le xml. J'ai juste deux vues différentes donc deux fichiers xml avec des éléments qui possèdent le même id que je souhaiterai ne définir dans le java qu'une seule fois. Par ce que lorsque je change de vue dans mon java je dois redéfinir mes boutons du xml dans le java. Peut être c'est comment je change de vue qui pose problème ...

    Pour ce qui est de la croix ce n'est pas pour fermer l'application, c'est pour fermer un tutoriel qui s'ouvre à l'ouverture :p

  5. #5
    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... toutes les méthodes fonctionnent....

    Deux activités, qui héritent de la même activité parente (qui gère les boutons communs).

    Deux fragments, qui héritent du même fragment parent (qui gère les boutons communs).

    Une activité qui gère les boutons communs (mais qui ne se déplacent pas), et deux fragments qui gère les parties "différentes" de l'UI.



    Il n'y a pas de différence entre "application" et "activité" dans Android. Donc que ce soit pour quitter l'activité principale (aka: fermer l'application), ou pour quitter une activité de tutoriel ... c'est pas bien différent.
    Je conseille un gros bouton "OK" pour quitter un tutoriel (plus explicite qu'une croix), et de toute manière, le bouton "back" servira de fermeture.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/02/2013, 10h54
  2. saisir une seule fois une donnée pour plusieurs enregistrements
    Par yulalienor dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 29/06/2010, 18h38
  3. Réponses: 2
    Dernier message: 10/07/2007, 13h45
  4. Réponses: 7
    Dernier message: 01/02/2006, 15h49
  5. Réponses: 2
    Dernier message: 22/11/2005, 14h06

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