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 :
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
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 }
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 <?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>
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)
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>
Partager