我有一個帶有功能WebView1和3個按鈕的活動A.我在onPause下保存了Webview1狀態,因此一旦活動B打開,WebView1的狀態已經保存。我的問題是,無論何時打開Activity B並嘗試將WebView1保存狀態加載到WebView11上的活動B上,它都會給我一個空指針(手機上的白色屏幕)。如何保存活動A的webview狀態,以便在活動B中恢復?將WebView保存狀態傳遞給另一個活動
示例:Im on activity頁面底部的webview我想保存該狀態,所以一旦打開activity 2 webview,它就會將我帶到同一頁面的底部,而不是重新加載頁面。
主要活動
public class MainActivity extends Activity {
public Bundle webViewBundle;
WebView wv;
Button bt1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
wv = (WebView) findViewById(R.id.webView1);
WebSettings webSettings = wv.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setSupportZoom(true);
webSettings.setBuiltInZoomControls(true);
wv.loadUrl("http://www.google.com");
wv.setWebViewClient(new myWebViewClient());
addListenerOnbt1();
}
public void addListenerOnbt1() {
// Select a specific button to bundle it with the action you want
bt1 = (Button) findViewById(R.id.button1);
bt1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, Activity2.class);
Bundle name=webViewBundle;
intent.putExtra("name", name);
startActivity(intent);
finish();
}
});
}
@Override
public void onPause()
{
super.onPause();
webViewBundle = new Bundle();
wv.saveState(webViewBundle);
}
>
活性2
public class Activity2 extends Activity {
WebView wv2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_main);
Bundle b = new Bundle();
b = getIntent().getExtras();
String name = b.getString("name");
final RelativeLayout rl = new RelativeLayout(this);
wv2 = (WebView) findViewById(R.id.webView11);
WebSettings webSettings = wv2.getSettings();
webSettings.setJavaScriptEnabled(true);
wv2.restoreState(b); // This line returns Null or white screen
}
} >
預先感謝您的幫助。
你解決了嗎? – dipali