建立在对webView控件有了一定的认识和了解之后,我们就可以继续研究一下这个控件了,这篇文章主要介绍一下如何使webView与ProgressDialog结合。
WebView 组件支持直接加载网页,可以将其视为一个浏览器,要实现该功能,具体步骤如下:
1.新建xml布局文件,如下:
<span style="font-size:18px;"><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout></span>
2.在主Activity中对控件进行初始化和设置相应的参数
<span style="font-size:18px;">package com.happy.wbpd;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
import android.widget.Toast;
public class MainActivity extends Activity {
private WebView webView;
private AlertDialog alertDialog;
private ProgressDialog progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initWebView();
}
/**
* 初始化webView
*/
private void initWebView() {
webView = (WebView) this.findViewById(R.id.webView);
progressBar = ProgressDialog.show(MainActivity.this, null,
"正在进入网页,请稍后...");
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("http://www.baidu.com/");
alertDialog = new AlertDialog.Builder(MainActivity.this).create();
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
if (progressBar.isShowing()) {
progressBar.dismiss();
}
}
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
Toast.makeText(MainActivity.this, "网页加载出错!", Toast.LENGTH_LONG);
alertDialog.setTitle("ERROR");
alertDialog.setMessage(description);
alertDialog.setButton("OK",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
}
});
alertDialog.show();
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {
webView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}</span>
3.在需要在AndroidManifest.xml 中添加访问互联网的权限,否则不能显示:<uses-permission android:name="android.permission.INTERNET"/>
该逻辑比较简单,外加今天比较忙,所以就大体介绍一下,下篇文章会说一下webView与javaScript的互相调用以及listView加入webView实现下拉刷新。