Android 将MotionEvent转换为position后,如何确定expandablelistview中引用了哪个列表项
我有一个Android 将MotionEvent转换为position后,如何确定expandablelistview中引用了哪个列表项,android,expandablelistview,gesturedetector,Android,Expandablelistview,Gesturedetector,我有一个ExpandableListView,带有一个自定义适配器,在我的手势检测器中,我试图找出如何找到由手势选择的列表项 class MyGestureDetector extends SimpleOnGestureListener { @Override public void onLongPress(MotionEvent e) { int itemnum = listView.pointToPosition((int) e.getX(), (int) e
ExpandableListView
,带有一个自定义适配器,在我的手势检测器中,我试图找出如何找到由手势选择的列表项
class MyGestureDetector extends SimpleOnGestureListener {
@Override
public void onLongPress(MotionEvent e) {
int itemnum = listView.pointToPosition((int) e.getX(), (int) e.getY());
itemnum -= listView.getFirstVisiblePosition();
因此,如果itemnum=7,则可能是
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
A组标签
B组标签
项目B1
项目B2
C组标签
项目C1
项目C2
第C3项我找到了解决方案。不确定这是否是最好的方法
@Override
public void onLongPress(MotionEvent e) {
int itemnum = listView.pointToPosition((int) e.getX(), (int) e.getY());
int itemnum2 = itemnum - listView.getFirstVisiblePosition();
View vi = listView.getChildAt(itemnum2);
所以这就是我得到这个观点的方式
不幸的是,在我从上面的vi
检索到TextView
之后,为了找到子记录(在我的例子中是一个文件),我不得不循环:
String filename = textView.getText().toString();
int groupCount = mAdapter.getGroupCount();
for(int t = 0; t < groupCount; t++) {
int childCount = mAdapter.getChildrenCount(t);
for(int y = 0; y < childCount; y++) {
File f = (File) mAdapter.getChild(t, y);
if (f.getName().equals(filename)) {
}
}
}
String filename=textView.getText().toString();
int groupCount=mAdapter.getGroupCount();
for(int t=0;t
我找到了一个解决方案。不确定这是否是最好的方法
@Override
public void onLongPress(MotionEvent e) {
int itemnum = listView.pointToPosition((int) e.getX(), (int) e.getY());
int itemnum2 = itemnum - listView.getFirstVisiblePosition();
View vi = listView.getChildAt(itemnum2);
所以这就是我得到这个观点的方式
不幸的是,在我从上面的vi
检索到TextView
之后,为了找到子记录(在我的例子中是一个文件),我不得不循环:
String filename = textView.getText().toString();
int groupCount = mAdapter.getGroupCount();
for(int t = 0; t < groupCount; t++) {
int childCount = mAdapter.getChildrenCount(t);
for(int y = 0; y < childCount; y++) {
File f = (File) mAdapter.getChild(t, y);
if (f.getName().equals(filename)) {
}
}
}
String filename=textView.getText().toString();
int groupCount=mAdapter.getGroupCount();
for(int t=0;t