Bonjour,

Alors voilà, j'ai une application qui récupère un certain nombre d'éléments sur un serveur distant et je veux les afficher dans le Drawer pour ensuite les utilisés. En fonction de l'élément sur lequel je clique ça m'affichera une certaine donnée. J'arrive à afficher mes éléments dans le drawer mais je ne sais pas comment gérer leur utilisation car ils sont rajoutés dynamiquement dans une boucle et je n'ai donc pas leur id...

Je mets un bout du 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
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawerLayout, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawerLayout.setDrawerListener(toggle);
toggle.syncState();
 
navigationView = (NavigationView) findViewById(R.id.nav_view);
menuElement = navigationView.getMenu();
navigationView.setNavigationItemSelectedListener(this);
 
@Override
public boolean onPrepareOptionsMenu(Menu menuElement) {
    menuElement = this.menuElement;
    String nameElement ="Aucun nom";
for (int i = 0; i < elements.size(); ++i) {
        nameElement = elements.get(i).getName();
        menuElement.add(R.id.item_elements, Menu.NONE, Menu.NONE, nameElement).setIcon(R.drawable.ic_element);
    }
return super.onPrepareOptionsMenu(menuElement);
}
 
@Override
public boolean onNavigationItemSelected(MenuItem item) {
 //Ici je suis bloqué car je ne connais pas les Id  Je veux que quand je clique sur un certain élément, ça m'envoie sur un certain fragment
}
main_activity.xml :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout ...........
 
.........
 
    <android.support.design.widget.NavigationView android:id="@+id/nav_view"
android:layout_width="wrap_content" android:layout_height="match_parent"
android:layout_gravity="start" android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer"
/>
 
</android.support.v4.widget.DrawerLayout>
activity_main_drawer.xml :

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
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
 
    <group
android:id="@+id/item_elements"
android:checkableBehavior="single"
android:visible="true">
<item android:title="Vos élements">
    </group>
 
    <group
android:id="@+id/item_compte"
android:checkableBehavior="single"
android:visible="false">
        <item android:title="Votre compte"> // Ici les éléments statiques donc pas de soucis x)
            <menu>
                <item
android:id="@+id/nav_param_compte"
android:icon="@android:drawable/ic_menu_myplaces"
android:title="Paramètre du compte" />
 
                <item
android:id="@+id/nav_deconnection"
android:icon="@android:drawable/ic_delete"
android:title="Déconnexion" />
            </menu>
        </item>
    </group>
</menu>
Il doit y avoir une solution toute bête comme d'habitude mais je bloque ... Je dois pas bien m'y prendre. Merci d'avance pour votre aide, j'apprends seul donc je bloque souvent sur quelques trucs comme çà x)