В моем проекте, у меня есть ExpandableListView
и я поставил setMultiChoiceModeListener
, как показано нижеКак выбрать элемент группы ExpandableListView в MultiChoiceMode
elvItemList = (ExpandableListView) root.findViewById(R.id.elv_item_list);
elvItemList.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE_MODAL);
elvItemList.setMultiChoiceModeListener(new SMMultiChoiceModeListener());
реализация SMMultiChoiceModeListener
выглядит следующим образом:
private class SMMultiChoiceModeListener implements AbsListView.MultiChoiceModeListener {
@Override
public void onItemCheckedStateChanged(ActionMode mode,
int position, long id, boolean checked) {
final int checkedCount = elvItemList.getCheckedItemCount();
selectEnable = true;
mode.setSubtitle("" + checkedCount + " items selected");
smListAdapter.checkedItems.put(position, checked);
smListAdapter.notifyDataSetChanged();
}
@Override
public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
MenuInflater inflater = activity.getMenuInflater();
inflater.inflate(R.menu.selection_menu, menu);
actionMode.setTitle("Select Items");
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) {
return true;
}
@Override
public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) {
switch (menuItem.getItemId()) {
case R.id.action_set_favorite:
Toast.makeText(activity, "set favorite " + elvItemList.getCheckedItemCount() +
" items", Toast.LENGTH_SHORT).show();
actionMode.finish();
break;
default:
Toast.makeText(activity, "Clicked " + menuItem.getTitle(),
Toast.LENGTH_SHORT).show();
break;
}
return true;
}
@Override
public void onDestroyActionMode(ActionMode actionMode) {
smListAdapter.checkedItems.clear();
smListAdapter.notifyDataSetChanged();
}
}
Я также Внедрение onGroupClickListener
как
public boolean onGroupClick(ExpandableListView expandableListView, View view, int i, long l) {
if(selectEnable) {
Utils.logit("SMLOG", "Clicking");
return true;
}
return false;
}
здесь selectEnable
переменная используется для блокировки расширения, как только событие ItemLongClick
.
Проблема: Когда я когда-либо сгореть ItemLongClick
бар действие появится на вершине, и показывает сообщение. После этого расширение группы будет заблокировано (это ожидается). Мне нужно выбрать элемент группы itemClick, но он не работает в моем случае. Может кто-нибудь мне помочь?
Просьба прокомментировать причину вниз голосования. – shafeeq