findViewById for WebView on another Class

时间:2015-03-25 19:31:27

标签: java android webview

我有两个布局(start.xmlactivity_main.xml),我的第一个活动GubStartActivity.java使用“start.xml”,其函数调用WebView

public void disparaweb()
{
    setContentView(R.layout.activity_main);
    myWebView = (WebView) findViewById(R.id.webview);       
    WebSettings webSettings = myWebView.getSettings();
    webSettings.setAllowContentAccess(true);
    myWebView.loadData("", "text/html", null);
    webSettings.setJavaScriptEnabled(true);
    myWebView.loadUrl(Global.urlstr);
    myWebView.addJavascriptInterface(new WebAppInterface(this), "Android");
}

我使用WebAppInterface.java作为我的.net应用程序的JavaScript接口。

一切正常,但我想在WebAppInterface中更改URL,我无法使用findViewById获取WebView,无论我使用什么,它总是返回null。

如何在WebAppInterface.java中获取myWebView元素?

1 个答案:

答案 0 :(得分:0)

好的,我认为如果您将webview作为参数传递给WebAppInterface它应该可以工作,在WebAppInterface中更改它

WebAppInterface(Context c) {
    mContext = c;
    mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    mBlueProbeAdapter = BluetoothAdapter.getDefaultAdapter();
}

WebAppInterface(Context c, WebView webView) {
    mContext = c;
    this.myWebView=webView;
    mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    mBlueProbeAdapter = BluetoothAdapter.getDefaultAdapter();
}

当你设置这个

myWebView.addJavascriptInterface(new WebAppInterface(this), "Android");

将此设置为

myWebView.addJavascriptInterface(new WebAppInterface(this, myWebView), "Android");