-1

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();

活動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);

}
4

2 に答える 2

0

アクティビティ間で通信するための最良の方法は、インテントメカニズムを使用することです。したがって、loadUrlメソッドを実行する必要があることをactivityBに通信するために、activityAからインテントを起動するだけです。

または、他の解決策については、この質問を読むことができます: AndroidTabHostアプリケーションで双方向通信を実現するための最良の方法

于 2012-07-06T16:07:31.560 に答える
0

Ortisiによって提案されたいずれかの意図。または、クラスを作成して、このクラスにそのメソッドを作成し、両方のアクティビティからそのメソッドを呼び出してみませんか。

于 2012-07-06T16:13:43.620 に答える