CAB菜单无效

时间:2016-05-15 13:11:54

标签: android android-tablayout contextual-action-bar

我有一个tablayout,在每个标签中,我都有使用自定义适配器的列表视图。我已将listview设置为Multi MODAL并定义了cabmenu。我在另一个有类似标签和列表视图的活动中使用了相同的cabmenu。我不明白我错过了什么,cabview菜单没有出现在listview项目的长按。另一个活动和这个活动之间的唯一区别是,另一个活动栏有一个动作栏。下面是cab菜单无效的代码。

public void showLists(){
    adapter=new CustomItemAdapter(getActivity(),listtype,fruititem,listid);
    lv=(ListView) getView().findViewById(R.id.fruits);
    lv.setAdapter(adapter);

    lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);


    lv.setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() {
        @Override
        public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
            if (checked) {
                selection.add(fruititem.get(position));
                count++;
            } else {
                selection.remove(fruititem.get(position));
                count--;
            }
            TextView tv = (TextView) getActivity().getLayoutInflater().inflate(R.layout.contextual_title, null);
            tv.setText(count + " selected");
            mode.setCustomView(tv);
        }

        @Override
        public boolean onCreateActionMode(ActionMode mode, Menu menu) {
            MenuInflater menuinflater = new MenuInflater(getContext());
            menuinflater.inflate(R.menu.cabmenu, menu);
            return true;
        }

        @Override
        public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
            return false;
        }

        @Override
        public boolean onActionItemClicked(ActionMode mode, MenuItem item) {


            if (item.getItemId() == R.id.deleteic) {
                for (ItemLists s : selection) {
                    dbHandler.deleteItem(s);

                }
                adapter.notifyDataSetChanged();
                mode.finish();
                showLists();
            }
                mode.finish();
            return true;
        }@Override
        public void onDestroyActionMode(ActionMode mode) {
            count = 0;
            selection.clear();
        }
    });





}

0 个答案:

没有答案