首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >onItemLongClickListener的工作很奇怪

onItemLongClickListener的工作很奇怪
EN

Stack Overflow用户
提问于 2016-06-08 11:30:33
回答 1查看 80关注 0票数 0

我的代码在下面,我的问题是,当活动第一次打开时,长时间单击listview不是working.And,然后再一次在listview中保存项目,它将work.why,这发生在任何人都不知道的情况下。提前谢谢

代码语言:javascript
复制
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;
        }
    });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-08 11:44:43

问题是在您的setChoiceMode()中调用OnItemLongClickListenersetMultiChoiceModeListener(),这意味着在对列表项执行长时间单击之前不会调用这些方法。

editListView.setChoiceMode()editListView.setMultiChoiceModeListener()放在OnItemLongClickListener之外

代码语言:javascript
复制
editListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
editListView.setMultiChoiceModeListener(new ListView.MultiChoiceModeListener() {
    // ...
}

editListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
    // ...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37701288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档