- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
这听起来像是一个重复的问题,但事实并非如此。
我正在尝试设置 OnActionExpandListener
到我的搜索菜单项:
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_country_picker, menu);
MenuItem menuItem = menu.findItem(R.id.search);
menuItem.setOnActionExpandListener(this);
//more code
return true;
}
当我运行它时,我得到了这个异常:
java.lang.UnsupportedOperationException: This is not supported, use MenuItemCompat.setOnActionExpandListener()
at android.support.v7.view.menu.MenuItemImpl.setOnActionExpandListener(MenuItemImpl.java:743)
at com.myapp.pages.country_picker.CountryPickerActivity.onCreateOptionsMenu(CountryPickerActivity.java:59)
at android.app.Activity.onCreatePanelMenu(Activity.java:3145)
at android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:320)
at android.support.v7.view.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:92)
at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.onCreatePanelMenu(AppCompatDelegateImplBase.java:331)
at android.support.v7.view.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:92)
at android.support.v7.app.ToolbarActionBar.populateOptionsMenu(ToolbarActionBar.java:454)
at android.support.v7.app.ToolbarActionBar$1.run(ToolbarActionBar.java:61)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6121)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
很酷,让我们使用 MenuItemCompat.setOnActionExpandListener()
那么!
这是我替换 menuItem.setOnActionExpandListener(this);
时得到的结果与 MenuItemCompat.setOnActionExpandListener(menuItem, this);
:
java.lang.UnsupportedOperationException: This is not supported, use MenuItemCompat.setOnActionExpandListener()
at android.support.v7.view.menu.MenuItemImpl.setOnActionExpandListener(MenuItemImpl.java:743)
at android.support.v4.view.MenuItemCompat.setOnActionExpandListener(MenuItemCompat.java:363)
at com.myapp.pages.country_picker.CountryPickerActivity.onCreateOptionsMenu(CountryPickerActivity.java:57)
at android.app.Activity.onCreatePanelMenu(Activity.java:3145)
at android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:320)
at android.support.v7.view.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:92)
at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.onCreatePanelMenu(AppCompatDelegateImplBase.java:331)
at android.support.v7.view.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:92)
at android.support.v7.app.ToolbarActionBar.populateOptionsMenu(ToolbarActionBar.java:454)
at android.support.v7.app.ToolbarActionBar$1.run(ToolbarActionBar.java:61)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6121)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
简单描述:
尝试使用A:不支持,使用B。
尝试使用B:不支持,使用B。
我的一些可能相关的 build.gradle 配置:
compileSdkVersion 23
buildToolsVersion '25.0.2'
defaultConfig {
minSdkVersion 21
targetSdkVersion 23
}
dependencies {
compile 'com.android.support:support-v4:23.4.0'
androidTestCompile 'com.android.support:support-annotations:26.0.0-alpha1'
...
}
附言:MenuItemCompat.setOnActionExpandListener()
已弃用,文档建议使用 MenuItem.setOnActionExpandListener(MenuItem.OnActionExpandListener
,这是我最初尝试的方法,但如您所见,它没有用。
有什么想法吗?
最佳答案
com.android.support:support-annotations:26.0.0-alpha1 已离开 alpha 版本。尝试更新到 com.android.support:support-annotations:26.0.0
https://developer.android.com/topic/libraries/support-library/packages.html#annotations
关于android - 无法设置 OnActionExpandListener : This is not supported, 使用 MenuItemCompat.setOnActionExpandListener(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45335853/
这个问题在这里已经有了答案: Android Support Repo 46.0.0 with Android Studio 2.3 (7 个答案) 关闭 5 年前。 今天 Android Stud
我需要在我的 SearchView 是否折叠时进行拦截,以便更改我的 Activity 中的一些 fragment ,即 AppCompatActivity。我使用 MenuItemCompat.se
如果搜索 View 是否打开,我有一些代码可以设置一个 bool 值。 MenuItemCompat.setOnActionExpandListener(action_search, new Menu
背景 我有一个正在使用我创建的特殊类初始化的 searchView,它被用于所有 Activity 和 fragment 。 问题 最近可能是支持库更新的缘故(也可能是之前没用过,记不太清了),抓不到
我之前成功创建了一个搜索项并调用了 .setOnActionExpandListener(),但是现在我收到了一个 UnsupportedOperationException 并且不知道如何解决。这可
嗨 Stackoverflow 团队, 以下是我的搜索 View 代码: private void setupSearchView(MenuItem searchItem) { MenuIte
使用 setOnActionExpandListener 会导致 SearchView 不展开。为什么?我该如何解决? menu.findItem(R.id.action_search).setOn
基本上与 Kotlin Android 开发的所有内容一样,我很难找到如何在 Kotlin 中使用 MenuItem.SetOnActionExpandListener() 的示例。 我的 menuI
这听起来像是一个重复的问题,但事实并非如此。 我正在尝试设置 OnActionExpandListener到我的搜索菜单项: public boolean onCreateOptionsMenu(Me
我正在使用 android-support-v4 开发适用于 Android 3.2 及更高版本的应用。当操作栏中的 SearchView 展开和折叠时,我需要实现 OnActionExpandLis
我正在使用 ActionBarActivity,如何在 API 级别 8+ 中支持 searchItem.setOnActionExpandListener?它表示为此需要最低 API 级别 14。
我最近从 Eclipse 迁移到 Android Studio,在这样做时我发现了以下错误 java.lang.UnsupportedOperationException: This is not s
我是一名优秀的程序员,十分优秀!