所以我有这个AsyncTask在onPostExecute中加载一个WebView,否则它可以完美地运行,但是我需要为onLoadResource做一些事情所以我试图设置一个WebViewClient并且由于某种原因导致了NullPointerException
private class newThread extends AsyncTask{
private WebView webview;
...
protected void onPostExecute(Void result){
setContentView(R.layout.reply);
webview.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
return true;
}
@Override
public void onLoadResource(WebView view, String url){
finish();
}
});
webview = (WebView)findViewById(R.id.replyview);
webview.getSettings().setJavaScriptEnabled(true);
webview.setScrollBarStyle(0);
webview.loadDataWithBaseURL("http://example.com", "example", "text/html", "utf-8", null);
}
...
那段代码有什么问题吗?
如果我使用基本相同的方法但在AsyncTask之外,则没有错误 . 如果我删除setWebViewClient行,那么它运行正常 .
1 回答
在您的代码中,您尝试在为其分配任何内容之前调用webview(
webview.setWebViewClient
)的函数(webview = (WebView)findViewById(R.id.replyview);
)更改这两个语句的顺序 .