J'ai un ExpandableListView
, avec un adaptateur personnalisé, et dans mon détecteur de mouvement j'essaie de comprendre comment trouver l'élément de liste sélectionné par un geste.Après avoir converti MotionEvent en position, comment déterminer quel élément de liste a été référencé dans un expandelistview
class MyGestureDetector extends SimpleOnGestureListener {
@Override
public void onLongPress(MotionEvent e) {
int itemnum = listView.pointToPosition((int) e.getX(), (int) e.getY());
itemnum -= listView.getFirstVisiblePosition();
Donc, si ItemNum = 7 il peut être
group A label
group B label
item B1
item B2
group C label
item C1
item C2
item C3 <== this is position 7, assuming group A label was still on the screen
Ainsi, si le groupe B était effondré alors ItemNum 7 serait être C5 ou D1.
Étant donné un numéro de position particulier, comment puis-je déterminer la position du groupe et la position enfant auxquelles il se réfère? Si je savais quel groupe a été développé, je pourrais faire une boucle, en comptant chaque élément, mais si la liste a défilé, alors les plus anciens ne devraient pas être comptés. Donc, étant donné un MotionEvent
sur un ExpandableListView
, comment puis-je le convertir en View
?