我从activityA调用activityB上的方法。 方法从A到B正确调用但是当我在其中执行webviewB.loadUrl(myUrl)时,应用程序因nullpointerexception崩溃。如果从activityB执行,相同的webviewB方法可以正常工作。可能是因为上下文,当从A到B调用时必须设置,但如何?这是最好的方法吗?谢谢。
ActivityA(tabHost)和ActivityB(tabcontent)已正确初始化,ActivityB的webview显示URL1。 然后,当来自ActivityA的evet被收集时,我需要从ActivityB上加载webview上的URL2。
编辑: 何时在ActivityA上收到活动
ActivityB test = new ActivityB();
test.recalcula();
ActivityB,
@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);
}
答案 0 :(得分:0)
在活动之间进行通信的最佳方式是使用Intent机制。 因此,只需从activityA启动一个intent,以便与activityB进行通信,告知它应该运行loadUrl方法。
或者对于其他解决方案,您可以阅读此问题: Best way to accomplish inter-activity communication in an Android TabHost application
答案 1 :(得分:0)
Ortisi建议的意图。或者你为什么不尝试创建一个类,在这个类中创建该方法,并从这两个活动中调用该方法。