我在Android应用程序中使用ExpandableListView
,如果用户在组元素上单击了很长时间,则想要执行操作,因此我在OnLongClickListener
扩展中定义了BaseExpandableListAdapter
。侦听器按预期工作,但子元素不再扩展。有什么想法吗?
public class ConnectionAdapter extends BaseExpandableListAdapter {
...
public View getGroupView(int groupPosition, boolean isExpanded, View convertView,
ViewGroup parent) {
// convertView is a LinearLayout
convertView.setOnLongClickListener(new OnLongClickListener() {
public boolean onLongClick(View v) {
// my action here
return true;
}
});
}
...
}
答案 0 :(得分:4)
您可以在expandablelistview上设置setOnItemLongClickListener。 ExpandableListView.PACKED_POSITION_TYPE_GROUP是组的ID,将其更改为 ExpandableListView.PACKED_POSITION_TYPE_CHILD,你可以使用longclicks对组子进行操作。
类似的东西:
pager_income = (ExpandableListView) findViewById(R.id.income_scroll);
pager_income.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
if (ExpandableListView.getPackedPositionType(id) == ExpandableListView.PACKED_POSITION_TYPE_GROUP) {
// Your code with group long click
return true;
}
return false;
}
});
答案 1 :(得分:1)
您的代码没有进一步处理任何其他“onClick”事件的原因是因为您在返回时传递了“true”。如果您指示已处理事件,则操作系统将停止尝试进一步处理任何其他事件。要让它处理此事件并进行扩展,那么您需要将return更改为false而不是true