读书人

WebView与ProgressDialog组合

发布时间: 2012-08-31 12:55:03 作者: rapoo

WebView与ProgressDialog结合

WebView组件支持直接加载网页,可以将其视为一个浏览器,要实现该功能,具体步骤如下:

webview.xml

<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"  android:orientation="vertical"  android:layout_width="fill_parent"  android:layout_height="fill_parent">    <WebView android:id="@+id/webview"    android:layout_width="fill_parent"    android:layout_height="fill_parent"/></LinearLayout>

?

WebViewActivity.java

public class WebViewActivity extends Activity{private WebView webView;private AlertDialog alertDialog;private ProgressDialog progressBar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.webview);//加载WebViewinitWebView();}@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if(keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()){webView.goBack();return true;}return super.onKeyDown(keyCode, event);}class MyWebViewClient extends WebViewClient{@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);return true;}@Overridepublic void onPageFinished(WebView view, String url) {if(progressBar.isShowing()){progressBar.dismiss();}}@Overridepublic void onReceivedError(WebView view, int errorCode,String description, String failingUrl) {Toast.makeText(WebViewActivity.this, "网页加载出错!", Toast.LENGTH_LONG);alertDialog.setTitle("ERROR");alertDialog.setMessage(description);alertDialog.setButton("OK", new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub}});alertDialog.show();}}protected void initWebView(){//设计进度条progressBar = ProgressDialog.show(WebViewActivity.this, null, "正在进入网页,请稍后…");//获得WebView组件webView = (WebView) this.findViewById(R.id.webview);webView.getSettings().setJavaScriptEnabled(true);webView.loadUrl("http://www.baidu.com");alertDialog = new AlertDialog.Builder(this).create();//设置视图客户端webView.setWebViewClient(new MyWebViewClient());}}

?最后,需要在**Manifest.xml中添加访问互联网的权限,否则不能显示:

<uses-permission android:name="android.permission.INTERNET"/>

?运行结果:
WebView与ProgressDialog组合
?
WebView与ProgressDialog组合
?

读书人网 >Web前端

热点推荐