2013-09-03 2 views
1

я не могу изменить индикатор в моей WebView приложения circle.the сбоя приложения на startup..here это кодПочему приложение запускается при запуске?

@Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     webview = (WebView) findViewById(R.id.webview); 
     WebSettings websettings = webview.getSettings(); 
     websettings.setJavaScriptEnabled(true); 

     getWindow().requestFeature(Window.FEATURE_INDETERMINATE_PROGRESS); // Request progress circle 
     setProgressBarIndeterminateVisibility(true); // Show progress circle 

    // webview.setWebViewClient(new WebViewClient()); 

     final Activity activity = this; 

     webview.setWebChromeClient(new WebChromeClient(){ 

       public void onProgressChanged(WebView view, int progress) { 
        activity.setTitle("Loading..."); 
        activity.setProgress(progress * 100); 
        if(progress == 100) 
         setProgressBarIndeterminateVisibility(false); // Hide progress circle when page loaded 
        activity.setTitle("Title"); 
       } 
      }); 
     if (savedInstanceState == null) 
     { 
      webview.loadUrl("http://www.proboards.com/"); 
     } 


    } 

Кто-то может помочь?

ответ

0

Ваше приложение аварий из-за этой линии:

Activity.getWindow().requestFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 

потребности называться перед вызовомActivity.setContentView(...);

Вы вызываете setContentView (...) раньше, вот почему ваше приложение выходит из строя.

Вот почему, на странице Android-разработчика:

http://developer.android.com/reference/android/view/Window.html#requestFeature%28int%29

+0

Прекрасное спасибо :-) –

0

Я вижу недостаток в вашем коде.

As far as I know, the ProgressBar value should be less than or equal to 100. 
You are setting it to (progress * 100) 

Also, once progress == 100, you hide the progress bar, 
this will take place when progress = 1. Then you hide the progress bar. 

Hope this helps.

private ProgressBar mProgress; 
    private int mProgressStatus = 0; 

    mProgress = (ProgressBar) findViewById(R.id.progress_bar); 

    // Start lengthy operation in a background thread 
     new Thread(new Runnable() { 
      public void run() { 
       while (mProgressStatus < 100) { 
        mProgressStatus = doWork(); 

        // Update the progress bar 
        mHandler.post(new Runnable() { 
         public void run() { 
          mProgress.setProgress(mProgressStatus); 
         } 
        }); 
       } 
      } 
     }).start(); 
+0

Так что вы предлагаете? –

+0

Я прикрепил ссылку для вас. Просто пройдите код там. http://developer.android.com/reference/android/widget/ProgressBar.html – JNL

Смежные вопросы