`
xiehongdong
  • 浏览: 69178 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.webview);
		//加载WebView
		initWebView();
	}
	
	@Override
	public 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{

		@Override
		public boolean shouldOverrideUrlLoading(WebView view, String url) {
			view.loadUrl(url);
			return true;
		}

		@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(WebViewActivity.this, "网页加载出错!", Toast.LENGTH_LONG);
			
			alertDialog.setTitle("ERROR");
			alertDialog.setMessage(description);
			alertDialog.setButton("OK", new DialogInterface.OnClickListener(){
				@Override
				public 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"/>

 运行结果:

 

 

  • 大小: 14.1 KB
  • 大小: 24.3 KB
分享到:
评论

相关推荐

    【eoe Android特刊】第二十四期Android WebView

    5. **WebView与ProgressDialog结合**:在加载网页内容时,可以结合使用ProgressDialog来提示用户加载进度,增强用户体验。 ### WebView高级应用 1. **处理404错误**:在WebView中处理404错误可以通过自定义...

    ProgressWebView

    综上所述,"ProgressWebView"是一个增强型的`WebView`实现,通过结合`ProgressBar`和`WebViewClient`、`WebChromeClient`的回调,为用户提供了一个显示加载进度的友好界面。这种定制方式在Android应用中广泛使用,能...

    android--开发中WebView的使用.docx

    在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序中内嵌网页浏览功能,相当于在应用内部构建了一个小型的浏览器。WebView使用WebKit渲染引擎,能够很好地支持HTML、CSS、JavaScript等各种Web...

    Android webview长按识别二维码

    总之,Android Webview长按识别二维码是一个结合了Webview交互和二维码识别技术的实用功能。通过集成ZxingCodeForWebView库,我们可以轻松实现这一功能,提升用户在使用应用时的便捷性。在实际开发中,还应注意处理...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    3.18 程序加载中,请稍后——ProgressDialog与线程整合应用 3.19 全屏幕以按钮覆盖——动态产生按钮并最大化 3.20 今晚到哪儿打牙祭?——具选择功能的对话框 3.21 Android变脸——主题(Theme)实现 第4章 史上超豪华...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    3.18 程序加载中,请稍后——ProgressDialog与线程整合应用 3.19 全屏幕以按钮覆盖——动态产生按钮并最大化 3.20 今晚到哪儿打牙祭?——具选择功能的对话框 3.21 Android变脸——主题(Theme)实现 第4章 史上超豪华...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    3.18 程序加载中,请稍后——ProgressDialog与线程整合应用 3.19 全屏幕以按钮覆盖——动态产生按钮并最大化 3.20 今晚到哪儿打牙祭?——具选择功能的对话框 3.21 Android变脸——主题(Theme)实现 第4章 史上超豪华...

    Android应用源码之带进度条简易浏览器项目.zip

    在这个项目中,进度条可能与WebView组件结合使用,WebView用于加载和显示网页内容。当WebView加载网页时,可以通过监听其ProgressListener来获取加载进度,并更新进度条的状态。 此外,项目可能会使用到Android的...

    Google Android SDK开发范例大全的目录

    3.18 程序加载中,请稍后——ProgressDialog与线程整合应用 3.19 全屏幕以按钮覆盖——动态产生按钮并最大化 3.20 今晚到哪儿打牙祭?——具选择功能的对话框 3.21 Android变脸——主题(Theme)实现 第4章 史上超豪华...

    Google+Android+SDK开发范例大全

    4.19 在Activity里显示列表列表——ListView的布局 4.20 以动态列表配置选项——ListActivity与Menu整合技巧 4.21 查找程序根目录下所有文件——JavaI/O与ListActivity的结合.. 4.22 加载手机磁盘里的图文件——使用...

    Google Android SDK开发范例大全(完整版附部分源码).pdf

    4.21 查找程序根目录下所有文件——JavaI/O与ListActivity的结合.. 4.22 加载手机磁盘里的图文件——使用decodeFile方法 4.23 动态放大缩小ImageView里的图片——运用Matrix对象来缩放图文件 4.24 动态旋转图片...

    Google Android sdk 开发范例大全 部分章节代码

    3.18 程序加载中,请稍后——ProgressDialog与线程整合应用 3.19 全屏幕以按钮覆盖——动态产生按钮并最大化 3.20 今晚到哪儿打牙祭?——具选择功能的对话框 3.21 Android变脸——主题(Theme)实现 第4章 史上超豪华...

    Google Android SDK开发范例大全(完整版)

    3.18 程序加载中,请稍后——ProgressDialog与线程整合应用 3.19 全屏幕以按钮覆盖——动态产生按钮并最大化 3.20 今晚到哪儿打牙祭?——具选择功能的对话框 3.21 Android变脸——主题(Theme)实现 第4章 史上超豪华...

    Google Android SDK 开发范例大全01

    3.18 程序加载中,请稍后——ProgressDialog与线程整合应用 3.19 全屏幕以按钮覆盖——动态产生按钮并最大化 3.20 今晚到哪儿打牙祭?——具选择功能的对话框 3.21 Android变脸——主题(Theme)实现 第4章 史上超豪华...

    Google Android SDK 开发范例大全02

    3.18 程序加载中,请稍后——ProgressDialog与线程整合应用 3.19 全屏幕以按钮覆盖——动态产生按钮并最大化 3.20 今晚到哪儿打牙祭?——具选择功能的对话框 3.21 Android变脸——主题(Theme)实现 第4章 史上超豪华...

    android图书查看+文件上传下载功能

    可以使用ProgressBar或ProgressDialog组件,结合AsyncTask的onProgressUpdate方法更新进度。 7. **异步处理与回调**: - 使用Handler、AsyncTask或者Retrofit等工具处理网络请求的异步操作,确保UI的流畅性。 - ...

    加载网页数据的library

    本主题将深入探讨“加载网页数据的library”,并结合描述中的“app登录、注册、加载网页”以及“网络不好时显示的dialog”来解析相关的技术点。 首先,我们要明白“加载网页数据的library”通常指的是用于在应用...

Global site tag (gtag.js) - Google Analytics