2016-07-17 46 views
0

你好,我有Java代碼where progressBar只加載第一次。 第二次瀏覽內部網頁時,它根本沒有顯示。進度條僅加載第一次。在第二頁它不顯示

package ext.packagename.apk; 

import android.app.Activity; 
import android.app.AlertDialog; 
import android.content.DialogInterface; 
import android.content.Intent; 
import android.graphics.Bitmap; 
import android.net.Uri; 
import android.os.Bundle; 
import android.view.KeyEvent; 
import android.view.View; 
import android.view.Window; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 
import android.widget.ProgressBar; 

public class MainActivity extends Activity { 
    /** Called when the activity is first created. */ 

    WebView web; 
    ProgressBar progressBar; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     getWindow().requestFeature(Window.FEATURE_PROGRESS); 
     setContentView(R.layout.activity_main); 
     OneSignal.startInit(this).init(); 

     web = (WebView) findViewById(R.id.activity_main_webview); 
     progressBar = (ProgressBar) findViewById(R.id.progressBar1); 
     //open in webview 
     //web.setWebViewClient(new myWebClient()); 
     web.getSettings().setJavaScriptEnabled(true); 
     web.loadUrl("http://example1.com"); 
     // opening in browser instead of WebView 
     web.setWebViewClient(new MyAppWebViewClient()); 
    } 

    public class MyAppWebViewClient extends WebViewClient 
    { 
     @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      if(Uri.parse(url).getHost().endsWith("exmaple1.com") || Uri.parse(url).getHost().endsWith("example2.com") || Uri.parse(url).getHost().endsWith("example3.com")) { 
       return false; 
      } 
      Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
      view.getContext().startActivity(intent); 
      return true; 
     } 
     @Override 
     public void onPageStarted(WebView view, String url, Bitmap favicon) { 
      // TODO Auto-generated method stub 
      super.onPageStarted(view, url, favicon); 
     } 

     @Override 
     public void onPageFinished(WebView view, String url) { 
      // TODO Auto-generated method stub 
      super.onPageFinished(view, url); 

      progressBar.setVisibility(View.GONE); 
     } 
    } 


    // To handle "Back" key press event for WebView to go back to previous screen. 
    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) 
    { 
     if ((keyCode == KeyEvent.KEYCODE_BACK) && web.canGoBack()) { 
      web.goBack(); 
      return true; 
     } else { 
      new AlertDialog.Builder(this) 
        .setIcon(android.R.drawable.ic_dialog_alert) 
        .setTitle("Alert") 
        .setMessage("exit?") 
        .setPositiveButton("Yes", new DialogInterface.OnClickListener() 
        { 
         @Override 
         public void onClick(DialogInterface dialog, int which) { 
          finish(); 
         } 

        }) 
        .setNegativeButton("No", null) 
        .show(); 
     } 
     return super.onKeyDown(keyCode, event); 
    } 
} 

當主頁加載時,進度條在第一次加載時非常精細。之後它消失。

+0

因爲你設置了progressBar.setVisibility(View.GONE)在onPageFinished方法,設置能見度可見onPageStarted方法 – FarshidABZ

回答

0

使用

progressBar.setVisibility(View.VISIBLE); 

onPageStarted方法

相關問題