java - findViewById 为另一个类上的 WebView

标签 java android webview

我有两个布局(start.xmlactivity_main.xml),我的第一个 Activity 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 接口(interface)。

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

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

最佳答案

好吧,我想如果你将 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");

关于java - findViewById 为另一个类上的 WebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29264852/

相关文章:

android - 使用 AlarmManager 取消特定的 PendingIntents

android - 仅向托管配置文件应用程序发送系统广播

带有WebView的Android弹出登录屏幕

Android WebView 无法正确渲染网页

java - 为什么 Array.newInstance(Class<?>, int) 不是通用的?

java - 在 baseadapter 中过滤后显示项目的当前大小

java - 设置 jax-ws 客户端超时

java - 无法通过 azure 管道检索下载的文件

android - 播放歌曲时 MediaController 播放按钮未更新

javascript - 在 MainActivity Xamarin 中从 webview 调用 javascript