【发布时间】:2012-07-07 01:04:08
【问题描述】:
我正在从activityA 调用一个在activityB 上的方法。 方法被正确地从 A 调用到 B,但是当我在其中执行 webviewB.loadUrl(myUrl) 时,应用程序因空指针异常而崩溃。相同的 webviewB 方法,如果从 activityB 执行,则可以正常工作。可能是因为上下文,当从 A 调用到 B 时必须设置,但是如何?最好的方法是什么?谢谢。
ActivityA (tabHost) 和 ActivityB (tabcontent) 已正确初始化,来自 ActivityB 的 webview 显示 URL1。 然后,当收到来自 ActivityA 的 evet 时,我需要从 ActivityB 加载 URL2 到 webview 上。
编辑: 当在 ActivityA 上收到事件时,
ActivityB test = new ActivityB();
test.recalcula();
活动B,
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.vistaaib);
webviewB = (WebView) findViewById(R.id.webviewB);
webviewB.loadUrl(URL1);
...
public void recalcula (){
webviewB.loadUrl(URL2);
}
【问题讨论】:
-
这里 webviewB 为 null..因为 webviewB 在 layoutB xml 中,它在 onCreate() 中被初始化/膨胀。所以你不能这样做......尝试一些不同的方法
-
我知道我做不到!这就是为什么我要求“不同的方法”
-
为什么需要加载ActivityB的webview??..为什么不把那个webview放在ActivityA中
-
由于多种原因,我无法在同一个 tabhost 活动上设置 webview :(
-
所以如果你能做到这一点..那么你想让
ActivityA的用户界面不可见?并且 webview 变得可见?