2011-07-16 19 views
12

webviewが完全に読み込まれたときにトーストを表示したい。 setWebViewClient()onPageFinished()never called(webview)!

public class WebViewSignUp extends Activity{ 

    WebView mWebView; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.webviewsignup); 

     mWebView = (WebView) findViewById(R.id.webview); 
     mWebView.getSettings().setJavaScriptEnabled(true); 

     ((TextView)findViewById(R.id.home)).setOnClickListener(new OnClickListener(){ 
      public void onClick(View v) { 
       finish(); 
      } 
     }); 

    mWebView.setWebViewClient(new WebViewClient() { 
     @Override 
     public void onPageFinished(WebView view, String url) { 
      super.onPageFinished(mWebView, url); 

      Toast.makeText(getApplicationContext(), "Done!", Toast.LENGTH_SHORT).show(); 
     } 
    }); 
    mWebView.loadUrl("http://pabebbe.com/m/register"); 

    mWebView.setWebViewClient(new WebViewClient() { 
     public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
     Toast.makeText(getApplicationContext(), "Oh no! " + description, Toast.LENGTH_SHORT).show(); 
     } 
     }); 
    } 
} 

答えて

38

2番目の呼び出しが最初に上書きされます。しかし、トーストは、私のコードですwhy..here私は知りませんが、表示されません。

WebViewClientのインスタンスを1つだけ作成し、両方のオーバーライドを同じクラスに作成し、setWebViewClientを1回呼び出します。次に、Webviewを読み込みます。

mWebView.setWebViewClient(new WebViewClient() { 
    @Override 
    public void onPageFinished(WebView view, String url) { 
     super.onPageFinished(mWebView, url); 
     Toast.makeText(getApplicationContext(), "Done!", Toast.LENGTH_SHORT).show(); 
    } 

    @Override 
    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
     Toast.makeText(getApplicationContext(), "Oh no! " + description, Toast.LENGTH_SHORT).show(); 
    } 
}); 
mWebView.loadUrl("http://pabebbe.com/m/register"); 
関連する問題