文档章节

Android的WebView与ProgressDialog结合

墙头草
 墙头草
发布于 2011/08/05 09:37
字数 270
阅读 2714
收藏 4

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;
    jQuery datatables使用
    @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"/>

© 著作权归作者所有

墙头草
粉丝 16
博文 145
码字总数 117172
作品 0
卢湾
私信 提问
android如何判断webview打开网页是主Html已经加载完成

安卓开发,在使用webview加载网页时,我在WebViewClient的onPageStarted函数中,显示一个ProgressDialog,等网页加载完成后,在onPageFinished中取消这个ProgressDialog。目前我发现有时候网...

kongcraft
2014/11/20
6.9K
0
android笔记之在WebView中显示ProgressBar的两种方法

第一种方法是用系统的资源,这种方法只能将进度情况显示到标题栏中。英文是本文作者的一段唠叨,很简单,我就不用再翻译了吧。 When using the webview, something that drives me crazy, sp...

迷途d书童
2012/03/24
2.1K
0
ProgressDialog的问题

new ProgressDialog(..)的时候,参数是getApplication()的时候,不能显示出来,new ProgressDialog的参数一般是xxxActivity.this,它依赖于这个Activity,如果我在new ProgressDialog的时候,...

andr
2013/04/28
203
0
android后台线程怎么创建UI组件

比如在android ProgressDialog和后台线程中前台ui线程在显示ProgressDialog,后台线程在下载更新数据,那么更新数据完毕,会dismiss ProgressDialog对象,而且会再显示一个提示对话框,告知数...

华宰
2011/09/08
1K
0
Android与IIS身份验证——Form验证

内容摘要 前言 设计思路 ASP.NET服务器端 Android客户端 运行结果 上篇《Android与IIS身份验证——基本验证》实现了Android客户端与IIS的简单验证。而这种验证方式虽然使用起来比较简单,但是...

长平狐
2012/06/11
541
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot 是所有基于 Spring 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件。

Springboot框架搭建相关 Spring Boot 是所有基于 Spring 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件。 什么是 Spring Boo...

AndLong
20分钟前
3
0
好程序员云计算学习路线分享软件包管理

好程序员云计算学习路线分享软件包管理,安装/查询/卸载 一、软件的类型 A. 源码包 需要编译 nginx-1.12.1.tar.gz B. 二进制包 已编译 mysql-community-common-5.7.12-1.el7.x86_64.rpm 常见...

好程序员官方
22分钟前
1
0
阿里巴巴小程序繁星计划 9月27日有话要说

2019年9月27日,阿里巴巴小程序繁星计划峰会将于杭州云栖小镇召开。这是自今年3月阿里巴巴正式对外宣布全面开启小程序发展战略,阿里云携手支付宝、淘宝、钉钉、高德联合发布“阿里巴巴小程序...

Mr_zebra
25分钟前
4
0
centos下搭建Jenkins持续集成环境(安装jenkins)

centos下搭建Jenkins持续集成环境(安装jenkins) 1、安装JDK yum install -y java 2、安装jenkins 添加Jenkins库到yum库,Jenkins将从这里下载安装。 1 wget -O /etc/yum.repos.d/jenkins.rep...

linjin200
27分钟前
4
0
JDK1.8.0_181的无限制强度加密策略文件变动

JDK1.8.0_151后的版本无需去官网下载 local_policy.jar US_export_policy.jar这个jar包,只需要修改Java\jdk1.8.0_181\jre\lib\security这目录下的java.security文件配置即可。 随着越来越多...

葉者
28分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部