2012-09-18 90 views
0

我試圖爲下面的代碼實施一個進度條微調器。我對android編程相當陌生,並嘗試過搜索和嘗試示例。下面的代碼是我的工作,彈出顯示並具有自定義關閉按鈕的web視圖。有人能告訴我如何使用下列代碼使用進度微調器嗎?謝謝。將進度條微調器添加到對話框彈出WebView

package com.example.expopup; 

import android.app.Activity; 
import android.app.Dialog; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.webkit.WebView; 
import android.widget.Button; 
import android.widget.ImageButton; 

public class MainActivity extends Activity { 

Dialog myDialog; 
Button myButton; 


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

    myButton = (Button) findViewById(R.id.ClkBtn); 

    myButton.setOnClickListener(new OnClickListener() {   
    public void onClick(View v) { 

      myDialog = new Dialog(MainActivity.this); 
      myDialog.setContentView(R.layout.mydialog); 
      myDialog.setTitle("Test"); 
      myDialog.setCancelable(true); 

      WebView myWebView = (WebView) myDialog.findViewById(R.id.testwebview); 
      myWebView.loadUrl("http://google.com"); 

      ImageButton close = (ImageButton)myDialog.findViewById(R.id.Btn1); 
      close.setOnClickListener(
        new OnClickListener(){ 

         public void onClick(View v) { 
          myDialog.dismiss(); 
        }      
      }); 

      myDialog.show(); 
     } 
    }); 
} 

}

回答

1

我不知道你用的WebView使用的是什麼類型的佈局,但是你可能要包括兩個WebView和一個FrameLayout中的ProgressBar,最初隱藏了WebView。然後,您可以顯示WebView並在頁面完全加載後隱藏ProgressBar。

R.layout.mydialog

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <WebView android:id="@+id/testwebview" 
      android:layout_width="match_parent" 
      android:visibility="invisible" 
      android:layout_height="match_parent" /> 

    <ProgressBar android:id="@+id/testprogressbar" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" /> 
</FrameLayout> 

中的活動:

myButton.setOnClickListener(new OnClickListener() {   
public void onClick(View v) { 

     myDialog = new Dialog(MainActivity.this); 
     myDialog.setContentView(R.layout.mydialog); 
     myDialog.setTitle("Test"); 
     myDialog.setCancelable(true); 

     final WebView myWebView = (WebView) myDialog.findViewById(R.id.testwebview); 
     final ProgressBar myPB = (ProgressBar) myDialog.findViewById(R.id.testprogressbar); 

     // Add WebViewClient to be notified of page load 
     myWebView.setWebViewClient(new WebViewClient(){ 
      @Override 
      public void onPageFinished(WebView view, String url){ 
       // Show webview and hide progress bar 
       myWebView.setVisibility(View.VISIBLE); 
       myPB.setVisibility(View.INVISIBLE); 
      } 
     }); 
     myWebView.loadUrl("http://google.com"); 

     ImageButton close = (ImageButton)myDialog.findViewById(R.id.Btn1); 
     close.setOnClickListener(
       new OnClickListener(){ 

        public void onClick(View v) { 
         myDialog.dismiss(); 
       }      
     }); 

     myDialog.show(); 
    } 
});  
+0

感謝。這是我需要的。我真的很感激幫助。 – jmoon1630

0

您可以使用ProgressDialog這樣

ProgressDialog progressDialog = new ProgressDialog(MainActivity.this); 
progressDialog.setCancelable(true); 
progressDialog.setIndeterminate(true); 
progressDialog.setMessage("Test"); 
progressDialog.show();