WebView的侦听事件+进度条的小例子 – Buddie – ITeye技术网站

Activity:

Java代码

 收藏代码

  1. public class CourseOnLine extends Activity {  
  2.     private WebView webview;  
  3.     private ProgressDialog dialog;  
  4.     @Override  
  5.     protected void onCreate(Bundle savedInstanceState) {  
  6.         showDialog(0);  
  7.         super.onCreate(savedInstanceState);  
  8.         setContentView(R.layout.online);  
  9.         Intent intent=getIntent();  
  10.         Bundle data=intent.getExtras();  
  11.         String courseURL=data.getString(“courseWebURL”);  
  12.           
  13.         webview=(WebView)findViewById(R.id.webview01);  
  14.         //设置WebView属性,能够执行JavaScript脚本  
  15.         webview.getSettings().setJavaScriptEnabled(true);  
  16.         //如果要播放Flash,需要加上这一句  
  17.         webview.getSettings().setPluginsEnabled(true);  
  18.         //加载URL内容  
  19.         webview.loadUrl(courseURL);  
  20.         MyWebViewClient myWebView=new MyWebViewClient();  
  21.         webview.setWebViewClient(myWebView);  
  22.     }  
  23.     @Override//设置回退  
  24.     public boolean onKeyDown(int keyCode, KeyEvent event) {  
  25.         if((keyCode==KeyEvent.KEYCODE_BACK) && webview.canGoBack()){  
  26.             webview.goBack();  
  27.             return true;  
  28.         }  
  29.         return super.onKeyDown(keyCode, event);  
  30.     }  
  31.     @Override  
  32.     protected Dialog onCreateDialog(int id) {  
  33.         //实例化进度条对话框  
  34.         dialog=new ProgressDialog(this);  
  35.         /*//可以不显示标题 
  36.         dialog.setTitle(“正在加载,请稍候!”);*/  
  37.         dialog.setIndeterminate(true);  
  38.         dialog.setMessage(“正在加载,请稍候!”);  
  39.         dialog.setCancelable(true);  
  40.         return dialog;  
  41.     }  
  42.     private class MyWebViewClient extends WebViewClient{  
  43.         @Override  
  44.         public boolean shouldOverrideUrlLoading(WebView view, String url) {  
  45.             view.loadUrl(url);  
  46.             return true;  
  47.         }  
  48.         @Override  
  49.         public void onPageFinished(WebView view, String url) {  
  50.             dialog.dismiss();  
  51.         }  
  52.         @Override  
  53.         public void onReceivedError(WebView view, int errorCode,  
  54.                 String description, String failingUrl) {  
  55.             // TODO Auto-generated method stub  
  56.             super.onReceivedError(view, errorCode, description, failingUrl);  
  57.             dialog.dismiss();  
  58.         }  
  59.     }  

 layout:online.xml 

 

Xml代码  收藏代码
  1. <?xml version=“1.0” encoding=“utf-8”?>  
  2. <LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”  
  3.     android:orientation=“vertical”  
  4.     android:layout_width=“fill_parent”  
  5.     android:layout_height=“fill_parent”  
  6.     >  
  7.       
  8.     <WebView   
  9.         android:id=“@+id/webview”  
  10.         android:layout_width=“fill_parent”  
  11.         android:layout_height=“fill_parent”  
  12.     />  
  13.   
  14. </LinearLayout>  

来源URL:http://buddie.iteye.com/blog/946642