将WebView从一个活动传递到另一个活动

时间:2010-09-18 14:54:52

标签: android

将WebView从第一个活动传递到第二个活动时遇到了一些问题。我已经尝试了putExtra等等,但它抱怨我正在尝试传递WebView而不是String。

Intent intent = new Intent().setClass(this, WebView.class);
intent.putExtra("myPassedWebView", mWebView);
startActivity(intent);  

有什么想法吗?

提前致谢!

2 个答案:

答案 0 :(得分:4)

永远不要在活动之间传递小部件。您将创建内存泄漏。如果您要解决的任何问题,请找到另一种解决方案。

答案 1 :(得分:1)

很老的话题,但我遇到了同样的问题。

不确定这是否是正确的方法。但是我通过创建一个单例类来解决这个问题,我存储了我使用的webview。

当我启动我需要相同webview的新活动时,我将其从parentLayout中删除,然后在onCreate();

中的新activityLayout中再次添加它

因为没有使用putExtra方法而且你只有一个webview实例,所以不会有内存泄漏。

创建webview并将其存储在singletonclass中:

Singleton.getInstance().setWebView((WebView) findViewById(R.id.mainwebview));

在开始活动之前从parentLayout中删除webview:

((ViewGroup)Singleton.getInstance().getWebView().getParent()).removeView(Singleton.getInstance().getWebView());

Intent i = new Intent(getApplication().getBaseContext(), WebActivity.class);

startActivity(i);

在新活动onCreate()中添加新视图中的webview:

((LinearLayout)findViewById(R.id.webActivity)).addView(Singleton.getInstance().getWebView());

然后,您可以按照自己的方式在活动之间传递webview。