Bonjour,
J'ai utilisé ce tuto : http://androidcodesnips.blogspot.fr/...able-list.html pour faire une expandable listview de plusieurs niveaux, comme ceci :
First Group
-- Sub Group
--- Child 1
--- Child 2
--- Child 3
Mon problème c'est que je voudrait mettre un context menu sur les Childs de dernier niveaux (child 1, child 2, child 3)
Et que si je fais :
registerForContextMenu(explvlist);
(dans la classe Home du tuto, je ne remet pas tous le code, c'est tout pareil)
Avec
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
|
@Override
public boolean onContextItemSelected(MenuItem item) {
ExpandableListView.ExpandableListContextMenuInfo info =
(ExpandableListView.ExpandableListContextMenuInfo) item.getMenuInfo();
int groupPos = 0, childPos = 0;
int type = ExpandableListView.getPackedPositionType(info.packedPosition);
if (type == ExpandableListView.PACKED_POSITION_TYPE_CHILD) {
groupPos = ExpandableListView.getPackedPositionGroup(info.packedPosition);
childPos = ExpandableListView.getPackedPositionChild(info.packedPosition);
}
return super.onContextItemSelected(item);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
ExpandableListView.ExpandableListContextMenuInfo info =
(ExpandableListView.ExpandableListContextMenuInfo) menuInfo;
int type = ExpandableListView.getPackedPositionType(info.packedPosition);
int groupPosition = ExpandableListView.getPackedPositionGroup(info.packedPosition);
int childPosition = ExpandableListView.getPackedPositionChild(info.packedPosition);
if (type == ExpandableListView.PACKED_POSITION_TYPE_CHILD){
MenuInflater inflater = getActivity().getMenuInflater();
inflater.inflate(R.menu.contextual_alertes, menu);
}
} |
Et
1 2 3 4 5 6 7 8 9 10 11
|
R.menu.contextual_alertes
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/consulter"
android:title="@string/consulter" />
<item android:id="@+id/actualiser"
android:title="@string/actualiser"/>
<item android:id="@+id/partager"
android:title="@string/partager"/>
</menu> |
J'ai "Consulter/Actualiser/Partager" sur les "Sub groups" et "Consulter/Actualiser/Partager/Consulter/Actualiser/Partager" sur les Childs de dernier niveaux (child 1, child 2 et child 3) comment faire pour que ce context menu ne soit que sur les childs de dernier niveaux... il me faudrait un "PACKED_POSITION_TYPE_CHILD_CHILD"
J'espère avoir été clair
Merci
Partager