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 :

[Débutant] Utilisation de NavigationView


Sujet :

Android

  1. #1
    Membre régulier Avatar de Caranille
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2013
    Messages : 117
    Points : 70
    Points
    70
    Par défaut [Débutant] Utilisation de NavigationView
    Bonjour à toutes et à tous,
    Je souhaite remettre au gout du jour un très vieux projet que j'avais fait sous Android et qui était fait de cette façon :

    MainActivity avec des boutons et qui chacun d'un fait appel à un Intent pour ouvrir une nouvelle activity.
    Maintenant je suis en train d'utiliser NavigationView qui me permet d'avoir un menu sur la gauche comme le playStore, or quand on clique sur un des choix et que j'utilise intent il me ferme mon activity (enfin il la met en arrière-plan) pour m'ouvrir la nouvelle activity (En même temps c'est ce que je lui demande).

    Mon souhait serait qu'il l'ouvre dans la page ci-dessous :

    Voici l'activity de base qui affiche le nom du dresseur.

    Nom : 1.PNG
Affichages : 385
Taille : 18,3 Ko

    Voici ce qu'il se passe quand je clique sur le bouton en haut à gauche ou que je fais coulisser le menu

    Nom : 2.PNG
Affichages : 359
Taille : 45,1 Ko

    Et voici le 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
    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
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    package com.caranille.myownpet;
     
    import android.content.Intent;
    import android.hardware.SensorManager;
    import android.os.Bundle;
    import android.support.design.widget.FloatingActionButton;
    import android.support.design.widget.Snackbar;
    import android.view.View;
    import android.support.design.widget.NavigationView;
    import android.support.v4.view.GravityCompat;
    import android.support.v4.widget.DrawerLayout;
    import android.support.v7.app.ActionBarDrawerToggle;
    import android.support.v7.app.AppCompatActivity;
    import android.support.v7.widget.Toolbar;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.widget.Button;
    import android.widget.TextView;
     
    import com.caranille.myownpet.DB.DBPetManage;
    import com.caranille.myownpet.Kernel.KernelService;
    import com.caranille.myownpet.Models.Disease;
    import com.caranille.myownpet.Models.Trainers;
     
    public class MainActivity extends AppCompatActivity
            implements NavigationView.OnNavigationItemSelectedListener {
     
        private SensorManager sensorManager;
        private Button Resume;
        private Button Stats;
        private Button Arena;
        private Button RelaunchTraining;
        private TextView TrainerSerialNumber;
        private int PERMISSION_ALL = 1;
     
        //STATIC
        static Disease disease;
        static DBPetManage dbPetManage;
        static Trainers trainers;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
            setSupportActionBar(toolbar);
     
            DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
            ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                    this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
            drawer.addDrawerListener(toggle);
            toggle.syncState();
     
            NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
            navigationView.setNavigationItemSelectedListener(this);
     
            dbPetManage = new DBPetManage(this);
            dbPetManage.open();
     
            int valid = dbPetManage.VerifyPet();
     
            if (valid == 0) {
                finish();
                Intent intent = new Intent(MainActivity.this, RegisterActivity.class);
                startActivity(intent);
            }
            else
            {
                trainers = dbPetManage.NewTrainer();
     
                //Lancement du service Principal du Pet qui gère la soif, faim etc...
                startService(new Intent(MainActivity.this, KernelService.class));
     
                TrainerSerialNumber = (TextView) findViewById(R.id.TrainerSerialNumber);
                TrainerSerialNumber.setText("Nom : "
                        + trainers.getName()
                        + " \nNuméro : "
                        + trainers.getID());
            }
        }
     
        @Override
        public void onBackPressed() {
            DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
            if (drawer.isDrawerOpen(GravityCompat.START)) {
                drawer.closeDrawer(GravityCompat.START);
            } else {
                super.onBackPressed();
            }
        }
     
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
     
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId();
     
            //noinspection SimplifiableIfStatement
            if (id == R.id.action_settings) {
                return true;
            }
     
            return super.onOptionsItemSelected(item);
        }
     
        @SuppressWarnings("StatementWithEmptyBody")
        @Override
        public boolean onNavigationItemSelected(MenuItem item) {
            // Handle navigation view item clicks here.
            int id = item.getItemId();
            if (id == R.id.home_kitchen) {
                Intent intent = new Intent(MainActivity.this, RegisterActivity.class);
                startActivity(intent);
            }
     
            DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
            drawer.closeDrawer(GravityCompat.START);
            return true;
        }
    }
    Actuellement quand on clique sur Cuisine il m'ouvre l'activity Register mais il me met l'activity actuel en pause ce que je souhaiterai c'est que quand on clique sur un des choix cela ouvre l'autre activité mais au même endroit et à la place de celle qui affiche le nom du dresseur, comme ça on garde le menu sur la gauche et ça fait beaucoup plus fluide (Car oui je pourrais ouvrir une nouvelle activity avec elle aussi son menu sur la gauche mais là ça serait horrible comme code...).

    Merci beaucoup de vos conseil,

    Bien cordialement, Jérémy

  2. #2
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Pour faire cela, il faut que tu passes par des Fragment.
    Grosso-modo, tu as une seule Activity, qui contient un emplacement de Fragment. Ensuite, à chaque fois que tu clic sur un de tes items, tu remplaces le Fragment chargé par l'Activity.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  3. #3
    Membre régulier Avatar de Caranille
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2013
    Messages : 117
    Points : 70
    Points
    70
    Par défaut
    Bonjour,

    Merci de votre réponse c'est bien ce que je pensais donc en gros faire une activité principal qui ensuite va surcharger plusieurs fragments pour les afficher à tous moment ^^.

    Merci beaucoup

  4. #4
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Faire une activité principale avec le menu coulissant standard (comme le propose la création d'application Android via Android Studio) avec un Fragment affiché dans cet Activity.
    À chaque navigation, remplacer le Fragment en question (ou déclencher une nouvelle Activity, dépendant du besoin), et bien penser à gérer sa pile de vue
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

Discussions similaires

  1. [Débutant] Utilisation du debugger Eclipse avec Serveur Web
    Par tnodev dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 09/06/2005, 17h45
  2. Réponses: 19
    Dernier message: 28/04/2005, 15h36
  3. [Débutant]Utilisation de swing
    Par OtI$ dans le forum Débuter
    Réponses: 10
    Dernier message: 01/12/2004, 21h27
  4. [Débutant] Utilisation du mot clé ASSERT
    Par analysiz dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 29/07/2004, 11h43
  5. [Débutant] Utilisation de FOP - Register Fonts with FOP
    Par Johnbob dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 31/01/2004, 00h27

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