在我的Android应用中,当我第一次创建新的模拟器并尝试在webview中编写时,它并不活跃。我不能在textfield中写,然后应用程序崩溃。如果我重新加载应用程序,一切正常。
代码:
String url = "http://api.vkontakte.ru/oauth/authorize?client_id=2731649&scope=wall,notify,docs&" +
"redirect_uri=http://api.vkontakte.ru/blank.html&display=wap&response_type=token";
WebViewClass wvClforVK = new WebViewClass();
在oncreate中:
webview= (WebView) findViewById(R.id.vkWebView);
webview.setWebViewClient(wvClforVK);
按下按钮:
webview.loadUrl(url);
in wvClforVK
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
答案 0 :(得分:1)
在尝试使用任何组件(例如R.id.vkWebView)之前,必须设置内容视图。如果在设置内容视图之前使用findViewById(...)
,则它将返回null。
设置内容视图调用...
setContentView(R.layout.main);
...假设您的布局文件名为main.xml
,但在使用R.layout时不要将.xml部分放在其上。通常,您会尽可能早地在活动的onCreate(...)
方法中设置内容视图。这通常在致电super.onCreate(...);
答案 1 :(得分:1)
对于android 4.2.2, 在开始加载所需的URL之前添加loadUrl(“about:blank”)。
所以,最终的代码是
WebView webView = (WebView)findViewById(R.id.my_web_view);
webview.loadUrl("about:blank");
webview.loadUrl("https://google.com");
在添加loadUrl("about:blank")
之前,每当我的webview尝试加载Url时,我在Android 4.2.2上运行我的应用程序时崩溃。