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
対応する `ListAdapterv . ICS では、この例外はスローされず、計画どおりアイテムは非表示になります。
2.3でそれを行う方法を知っている人はいますか?
ContextMenu
1 つの回避策は、を介してエミュレートしないことですDialog
が、むしろ固執したいと思いますContextMenu