android执行另一个活动的方法

时间:2012-07-06 16:05:38

标签: java android

我从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);

}

2 个答案:

答案 0 :(得分:0)

在活动之间进行通信的最佳方式是使用Intent机制。 因此,只需从activityA启动一个intent,以便与activityB进行通信,告知它应该运行loadUrl方法。

或者对于其他解决方案,您可以阅读此问题: Best way to accomplish inter-activity communication in an Android TabHost application

答案 1 :(得分:0)

Ortisi建议的意图。或者你为什么不尝试创建一个类,在这个类中创建该方法,并从这两个活动中调用该方法。