屏幕旋转后保持上下文菜单

Mac*_*rse 3 android contextmenu

我有一个活动就是它的onCreate方法:

registerForContextMenu(theView);

并在onCreateContextMenu中:

super.onCreateContextMenu(menu, v, menuInfo);
menu.add(blablabla);
Run Code Online (Sandbox Code Playgroud)

这很好用,但问题是当屏幕旋转时上下文菜单消失.如何解决这个问题?

谢谢阅读!

Mac*_*rse 5

这是解决方案:

contextMenu消失了,因为在默认情况下旋转android调用destroy()然后onCreate()但是:

如果你不希望Android通过正常的活动破坏和重新创建过程; 相反,您想要自己处理重新创建视图,您可以在AndroidManifest.xml中的元素上使用android:configChanges属性.

<activity
    android:name=".SmsPopupActivity"
    android:theme="@android:style/Theme.Dialog"
    android:launchMode="singleTask"
    android:configChanges="orientation|keyboardHidden"
    android:taskAffinity="net.everythingandroid.smspopup.popup">
</activity>
Run Code Online (Sandbox Code Playgroud)

这样,当我的手机旋转时,我的contextMenu没有关闭,因为没有调用onCreate()方法.

也可以看看: