2011-03-26 54 views
2

所以我有這個AsyncTask加載onPostExecute,否則工作完美的WebView,但是我需要做一些onLoadResource,所以我想設置一個WebViewClient,出於某種原因導致空指針異常Android - 設置WebViewClient在AsyncTask中導致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線,那麼它運行良好。

+0

請發佈堆棧跟蹤或更清楚地指出NPE的發生位置。 – katsharp 2011-03-26 23:37:44

回答

1

在你的代碼中,在你給它分配任何東西(webview = (WebView)findViewById(R.id.replyview);)之前,你嘗試調用webview的函數(webview.setWebViewClient)來改變這兩個語句的順序。

+0

哦哇...謝謝 – aperture 2011-03-26 23:43:25

相關問題