2

我以前使用过 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 是否应该从其他包导入?还是我只需要与 MenuCompat 和 MenuItemCompat 一起使用不同的所有内容。谢谢

4

1 回答 1

1

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

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

于 2015-08-03T17:01:41.733 回答