我正在尝试将已显示的ContextMenu
项目设置为不可见( )(在 期间将菜单的引用保存为成员)。item.setVisible(false)
onCreateContextMenu()
在 2.3 上执行此操作时出现异常:
01-17 09:54:42.563: E/AndroidRuntime(2494): java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. [in ListView(16908823, class com.android.internal.app.AlertController$RecycleListView) with Adapter(class com.android.internal.view.menu.MenuBuilder$MenuAdapter)]
当然,我所有的代码都在 UI 线程中运行。
我猜ContextMenu
在 2.3 中是使用ListView
相应的 `ListAdapter. 在 ICS 中,不会抛出此异常,并且该项目按照我的计划变得不可见。
有人知道如何在 2.3 上执行此操作吗?
一种解决方法是不模仿ContextMenu
via Dialog
,但我宁愿坚持ContextMenu