android - 在 Android 中使用 appCompat 时,Menu 和 MenuItem 的正确导入是什么?

标签 android android-appcompat android-menu appcompatactivity

我以前使用 ActionBarSherlock,但现在我正在使用 appCompat 将我的所有应用程序移动到 Material Theme。我在下面的代码中收到 UnsupportedOperationException:

 MenuItem num = (MenuItem) menu.findItem(R.id.num);

        num.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
            @Override
            public boolean onMenuItemActionExpand(MenuItem menuItem) {
                //wow
            }

我收到以下错误:

java.lang.UnsupportedOperationException: This is not supported, use MenuItemCompat.setOnActionExpandListener()
            at android.support.v7.internal.view.menu.MenuItemImpl.setOnActionExpandListener(MenuItemImpl.java:740)

那么遇到这种情况我该怎么办呢?我的 Menu 和 MenuItems 应该从其他包导入吗?或者我只需要将不同的 all 与 MenuCompat 和 MenuItemCompat 一起使用。谢谢

最佳答案

方法setOnActionExpandListener仅在 API 级别 14 中添加。因此您不能安全地使用它,因为它在低于 14 的 API 级别中不存在。

在您的情况下,按照错误消息的建议,您应该使用 MenuItemCompat.setOnActionExpandListener()。

关于android - 在 Android 中使用 appCompat 时,Menu 和 MenuItem 的正确导入是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31792199/

相关文章:

android - 在 TextView 中显示一个整数

android - 使用 Material Design 风格渲染对话框元素

java - 需要使用 Android 菜单方面的帮助

android - 带有自定义项的底部导航 View (actionLayout)

java - Android Camera.takePicture 失败

java - 无法从具有 3 行、3 列的 CursorWindow 读取第 0 行、第 3 列

java - android,asynctask,在 doInBackground() 中写入/读取数据库失败

android - AppCompat v21 微调器样式

android - 分别为 CheckBox 和 Toolbar 着色

java - 如何动态更改bottomAppBar菜单图标