如何在android中的屏幕旋转时保留文本选择的查找状态
在我的Application中,我使用Webview显示网站,然后长按网站内容,创建系统默认的Actionmode,“选择”、“复制”、“分享”、“查找”菜单显示,然后我点击“查找”项可以在查找文本编辑器中看到所选单词。但是当我旋转屏幕时,所有菜单和查找文本编辑器都被破坏了,回到我开始打开网站时的初始状态。我的问题是屏幕旋转后,我该怎么做才能保留查找状态?
PS:我知道当屏幕旋转时,Activity被销毁并重新创建,所以旋转前的状态丢失了。但我不知道应该在 onSaveIntanceState() 方法中保存什么对象。我也不想在 AndroidManifest.xml 文件中使用 android:configChanges 。
我确实喜欢下面
protected void onSaveInstanceState(Bundle outState) {
webView.saveState(outState);
}
然后在 webview 重新膨胀之后在你的 onCreate 中恢复它:
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.blah);
if (savedInstanceState != null)
((WebView)findViewById(R.id.webview)).restoreState(savedInstanceState);
}
但它不起作用,文本选择查找状态仍然丢失。
我想如果我可以获得系统默认的 ActionMode 实例,那么我可以保存它,但我没有找到任何方法来获取该实例。