我正在尝试识别已在expandableListView中单击的视图.当我设置一个时,OnItemLongClickListener我得到一个参数,向我显示列表中单击视图的位置.但是,它也会计算儿童观点.我希望它只计算群组,所以当点击一个群组时,我可以确定它是哪一个.有没有办法做到这一点?
我真的可以将这些setOnLongClickListener和setOnClickListener用于同一个按钮吗?因为如果我长按单击按钮,则会执行longclick和正常单击,我不知道为什么.我真的可以这样做吗?请帮我:)
readDbButton.setOnLongClickListener(
new View.OnLongClickListener() {
public boolean onLongClick(View view) {
//do something
return false;
}
}
);
readDbButton.setOnClickListener(
new View.OnClickListener()
{
public void onClick(View view)
{
//Do something else
}
});
Run Code Online (Sandbox Code Playgroud) 对于遇到与我相同问题的人,我会在这里留下:
我试图建立一个OnItemLongClickListener为ExpandableListView和想知道的是点击哪个组.按照我在这里提出的许多问题(例如这个问题)的建议,我ExpandableListView.getPackedPositionGroup总是回来0.
这是我使用的代码:
@Override
public boolean onItemLongClick(AdapterView<?> list, View view, int position, long id) {
Log.d(D, "position: "+position);
Log.d(D, "id: "+position);
Log.d(D, "unpacked position: "+ExpandableListView.getPackedPositionGroup(position));
switch(ExpandableListView.getPackedPositionType(position)) {
case ExpandableListView.PACKED_POSITION_TYPE_CHILD:
Log.d(D, "position type: child");
break;
case ExpandableListView.PACKED_POSITION_TYPE_GROUP:
Log.d(D, "position type: group");
break;
case ExpandableListView.PACKED_POSITION_TYPE_NULL:
Log.d(D, "position type: null");
break;
default:
Log.wtf(D, "position type: "+ExpandableListView.getPackedPositionType(position));
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
我发现,position和id总是具有相同(正确)的值.但是,类型始终被识别为组,并且解压缩位置始终为0.
那么代码有什么问题呢?