Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème option menu + ViewPager

    19 avril 2019 à 7:23:12

    Bonjour, désoler de poser peut-être une question bête mais je suis encore novice donc, mais après avoir épuisé la moitié des tutos d'exemple qui se trouve sur internet impossible de faire fonctionner mon Item dans mon option menue pour aller sur la bonne page en fait tout se compile correctement j'ai aucune erreur, mais l'application se ferme

    Je suis en train de coder une application qui se rapproche d'un livre style eBook j'ai donc une structure avec un menu dreawer + un option menu et un viewpager.

    Mon option menue me sert de table des matières et mon problème est que je n'arrive pas à aller à la page voulue depuis mon option menue à une des pages de mon viewpager !

    Quelqu'un pourrait m'aidais SVP j'avoue ne plus savoir quoi faire.


    Ma structure se compose comme de la manière suivante :

    AndroidManifest.xml 

    -------------------------
    Mes Class
    -------------------------
    CustomPagerAdapter
    MainActivity
    ModelObject
    page_001
    page_002
    page_003
    page_004
    page_005
    page_006
    page_007
    page_008

    -------------------------
    Mes fixhier XML
    -------------------------
    activity_main.xml
    app_bar_main.xml
    content_main.xml
    nav_header_main.xml
    page_001.xml
    page_002.xml
    page_003.xml
    page_004.xml
    page_005.xml
    page_006.xml
    page_007.xml
    page_008.xml

    -------------------------
    Mes Menu
    -------------------------
    activity_main_drawer.xml
    main.xml -> Etant mon fichier option Menu

    Mon fichier MainActivity

    package loganetleselementsart.com;
    
    import android.content.Intent;
    import android.os.Bundle;
    import android.support.design.widget.NavigationView;
    import android.support.v4.view.GravityCompat;
    import android.support.v4.view.ViewPager;
    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.view.View;
    
    public class MainActivity extends AppCompatActivity
            implements NavigationView.OnNavigationItemSelectedListener {
    
        private View view;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
            setSupportActionBar(toolbar);
    
            ViewPager viewPager = (ViewPager) findViewById (R.id.viewpager);
            viewPager.setAdapter (new CustomPagerAdapter(this));
    
            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);
        }
    
        @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) {
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            switch (item.getItemId()) {
    
                case R.id.page_001:
                    Intent Intent1 = new Intent(this, page_001.class);
                    this.startActivity(Intent1);
                    return true;
    
                case R.id.page_002:
                    Intent Intent2 = new Intent(this, page_002.class);
                    this.startActivity(Intent2);
                    return true;
    
                default:
                    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.nav_camera) {
                // Handle the camera action
            } else if (id == R.id.nav_gallery) {
    
            } else if (id == R.id.nav_slideshow) {
    
            } else if (id == R.id.nav_manage) {
    
            } else if (id == R.id.nav_share) {
    
            } else if (id == R.id.nav_send) {
    
            }
    
            DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
            drawer.closeDrawer(GravityCompat.START);
            return true;
        }
    }

    Mon fichier Main Activity

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:tools="http://schemas.android.com/tools"
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto">
    
        <item
            android:id="@+id/Menu"
            android:title="Menu">
            <menu>
                <item
                    android:id="@+id/page_001"
                    android:title="Titre01"
                    android:orderInCategory="100"
                    app:showAsAction="never"/>
                <item
                    android:id="@+id/page_002"
                    android:title="Titre02"
                    android:orderInCategory="100"
                    app:showAsAction="never"/>
                <item
                    android:id="@+id/item03"
                    android:title="Logan et les Elements"
                    android:orderInCategory="100"
                    app:showAsAction="never"/>
                <item
                    android:id="@+id/item04"
                    android:title="Nooooon !!!"
                    android:orderInCategory="100"/>
                <item
                    android:id="@+id/item05"
                    android:title="Finch"
                    android:orderInCategory="100"/>
                <item
                    android:id="@+id/item06"
                    android:title="page 06"
                    android:orderInCategory="100"/>
            </menu>
        </item>
    </menu>
    
    



    -
    Edité par Glouton1er 19 avril 2019 à 7:31:19

    • Partager sur Facebook
    • Partager sur Twitter
      19 avril 2019 à 9:50:56

      Salut,

      Si l'application se ferme, c'est qu'elle crashe. Quand une application crashe, elle produit une stacktrace dans le logcat. Poste la stacktrace ici.

      • Partager sur Facebook
      • Partager sur Twitter
        19 avril 2019 à 12:52:10

        Alors je c'est pas si c'est sa car je ne me suis jamais encore utiliser le debuggage

        04/19 12:50:33: Launching app
        $ adb shell am start -n "loganetleselementsart.com/loganetleselementsart.com.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
        Client not ready yet..Waiting for process to come online
        Connected to process 12459 on device Pixel_2_XL_API_28 [emulator-5554]
        Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
        W/elementsart.co: JIT profile information will not be recorded: profile file does not exits.
        I/chatty: uid=10091(loganetleselementsart.com) identical 10 lines
        W/elementsart.co: JIT profile information will not be recorded: profile file does not exits.
        I/InstantRun: starting instant run server: is main process
        W/elementsart.co: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (light greylist, reflection)
        W/elementsart.co: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (light greylist, reflection)
        D/OpenGLRenderer: Skia GL Pipeline
        D/: HostConnection::get() New Host Connection established 0xcb07fb00, tid 12480
        I/ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 0
        I/ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasHDRDisplay retrieved: 0
        I/OpenGLRenderer: Initialized EGL, version 1.4
        D/OpenGLRenderer: Swap behavior 1
        W/OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...
        D/OpenGLRenderer: Swap behavior 0
        D/EGL_emulation: eglCreateContext: 0xdfa05300: maj 3 min 1 rcv 4
        D/EGL_emulation: eglMakeCurrent: 0xdfa05300: ver 3 1 (tinfo 0xdfa03690)
        E/eglCodecCommon: glUtilsParamSize: unknow param 0x000082da
            glUtilsParamSize: unknow param 0x000082da
        D/EGL_emulation: eglMakeCurrent: 0xdfa05300: ver 3 1 (tinfo 0xdfa03690)
        



        • Partager sur Facebook
        • Partager sur Twitter
          19 avril 2019 à 16:16:00

          Je pense qu'il en manque un bout. Je t'invite à lire cet article sur le site de la documentation Android : https://developer.android.com/studio/debug/stacktraces

          • Partager sur Facebook
          • Partager sur Twitter

          Problème option menu + ViewPager

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown