我尽量保存和恢复的3状态WebViews中使用我的活动onSaveInstanceState()和restoreState()我的方法WebView中onCreate().当我只有一个时可以正常工作WebView,但有3个WebViews保存,看起来它只是最后一个保存计数并覆盖其他保存; 因此,当我使用该restoreState()方法时onCreate(),第一个WebView具有第三个的内容而WebView另外两个是空的.
以下是我的活动代码示例:
@Override
public void onSaveInstanceState(Bundle outState) {
((WebView)findViewById(R.id.webview1)).saveState(outState);
((WebView)findViewById(R.id.webview2)).saveState(outState);
((WebView)findViewById(R.id.webview3)).saveState(outState);
}
@Override
public void onCreate(Bundle savedInstanceState) {
((WebView)findViewById(R.id.webview1)).restoreState(savedInstanceState);
((WebView)findViewById(R.id.webview2)).restoreState(savedInstanceState);
((WebView)findViewById(R.id.webview3)).restoreState(savedInstanceState);
}
Run Code Online (Sandbox Code Playgroud)
我应该使用一些技巧为每个视图使用另一个包吗?我在代码中的其他地方做错了导致这种情况还是标准行为?
第二次电话会saveState()覆盖第一次通话中保存的内容,第三次通话会覆盖第二次通话的内容.在onSaveInstanceState()捆绑执行结束时,只包含第3个WebView状态.
这就是为什么当你恢复第3个状态WebView时恢复到第1个状态WebView.
创建你的每一个的新的组合对象WebViews,并把它们放到outState Bundle使用对象这给出了每个不同的密钥Bundle:
public void putBundle (String key, Bundle value)
Run Code Online (Sandbox Code Playgroud)
在基于3个键onCreate()获取Bundles并恢复状态.
| 归档时间: |
|
| 查看次数: |
2913 次 |
| 最近记录: |