我的代码在下面,我的问题是,当活动第一次打开时,长时间单击listview不是working.And,然后再一次在listview中保存项目,它将work.why,这发生在任何人都不知道的情况下。提前谢谢
editListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
editListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
editListView.setMultiChoiceModeListener(new ListView.MultiChoiceModeListener() {
@Override
public void onItemCheckedStateChanged(ActionMode actionMode, int position, long l, boolean b) {
actionMode.setTitle(editListView.getCheckedItemCount() + " Selected");
// Toggle the state of item after every click on it
mAdapterEdit.toggleSelection(position);
}
@Override
public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
actionMode.getMenuInflater().inflate(R.menu.menu_group_edit, menu);
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) {
if (menuItem.getItemId() == R.id.delete_action) {
SparseBooleanArray selected = mAdapterEdit.getSelectedIds();
short size = (short) selected.size();
for (byte I = 0; I < size; I++) {
if (selected.valueAt(I)) {
GroupContactDAO selectedItem = mAdapterEdit
.getItem(selected.keyAt(I));
mAdapterEdit.remove(selectedItem);
}
}
actionMode.finish();
return true;
}
return false;
}
@Override
public void onDestroyActionMode(ActionMode actionMode) {
}
});
return false;
}
});发布于 2016-06-08 11:44:43
问题是在您的setChoiceMode()中调用OnItemLongClickListener和setMultiChoiceModeListener(),这意味着在对列表项执行长时间单击之前不会调用这些方法。
将editListView.setChoiceMode()和editListView.setMultiChoiceModeListener()放在OnItemLongClickListener之外
editListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
editListView.setMultiChoiceModeListener(new ListView.MultiChoiceModeListener() {
// ...
}
editListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
// ...
}https://stackoverflow.com/questions/37701288
复制相似问题