动作模式动态修改动作菜单

 咖喱2502894907 发布于 2023-01-08 15:51

我在中扩展AbsListView.MultiChoiceModeListener了多项选择功能ListView,我想动态地更改操作菜单(当ListView选择了一项以上时)。

private class ModeCallback implements ListView.MultiChoiceModeListener {
        //inflate menu 
        public boolean onCreateActionMode(ActionMode mode, Menu menu) {
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.compose_multi_select_menu, menu);
        }
        public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
            //want to remove some menu here, but not work
            if (getListView().getCheckedItemCount() > 1) {
            MenuItem item = menu.getItem(5);
            menu.removeItem();
            }
        }

}

我尝试删除MenuItemonPrepareActionMode(),但不起作用。也尝试 mode.invalidate()onItemCheckedStateChanged()

其实,我在找onPrepareActionMode()menu传递没有MenuItem在所有。

有人可以帮忙吗?

1 个回答
  • 您可以通过显示或隐藏如下项来修改onItemCheckedStateChanged()中的菜单:

    Menu menu = mode.getMenu();
    menu.findItem(R.id.some_item_id).setVisible(false);
    

    其中,modeActionMode传递到onItemCheckedStateChanged

    2023-01-08 15:52 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有