如何在android中将url加载到webview时显示进度?

2023-11-24

我正在将 url 加载到 webview 中:

WebView webview=(WebView)findViewById(R.id.webview); 
webview.loadUrl(url);

加载网址需要一些时间,在此期间显示空白屏幕。我想在加载 url 时显示进度对话框:

ProgressDialog dialog = ProgressDialog.show(this, "HI","Loading......", true);

但是,上面的代码不起作用。如果有人有任何想法,请帮忙。


set a WebViewClient到您的 WebView,启动您的进度对话框onCreate()方法在页面加载完成后将其关闭onPageFinished(WebView view, String url)

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.Window;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

public class Main extends Activity {
    private WebView webview;
    private static final String TAG = "Main";
    private ProgressDialog progressBar;  

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_NO_TITLE);

        setContentView(R.layout.main);

        this.webview = (WebView)findViewById(R.id.webview);

        WebSettings settings = webview.getSettings();
        settings.setJavaScriptEnabled(true);
        webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);

        final AlertDialog alertDialog = new AlertDialog.Builder(this).create();

        progressBar = ProgressDialog.show(Main.this, "WebView Example", "Loading...");

        webview.setWebViewClient(new WebViewClient() {
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                Log.i(TAG, "Processing webview url click...");
                view.loadUrl(url);
                return true;
            }

            public void onPageFinished(WebView view, String url) {
                Log.i(TAG, "Finished loading URL: " +url);
                if (progressBar.isShowing()) {
                    progressBar.dismiss();
                }
            }

            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                Log.e(TAG, "Error: " + description);
                Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show();
                alertDialog.setTitle("Error");
                alertDialog.setMessage(description);
                alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        return;
                    }
                });
                alertDialog.show();
            }
        });
        webview.loadUrl("http://www.google.com");
    }
}

你的 main.xml 布局

<?xml version="1.0" encoding="utf-8"?>
<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="@string/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1" />
</LinearLayout>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在android中将url加载到webview时显示进度? 的相关文章

随机推荐

  • PHP 无法使用 mkdir 创建目录

    我有一个以前工作的 PHP 脚本 可以使用以下命令创建目录mkdir webfolder var www html images user mkdir webfolder 0770 我对文件夹的权限设置做了一些更改 var www html
  • 在 Java 中使用 scala 映射

    我有两个文件 一种是scala 另一种是java Scala 文件有一个返回 scala 不可变映射的函数 Java 文件想要使用该映射作为字典 我是 scala 和 java 的新手 如何将该 scala 映射转换为 java 字典 这是
  • 关于懒惰 [ RAKU ]

    Raku 文档中指出 gather take 结构正在被延迟评估 在下面的例子中 我很难得出关于构造的惰性的结论 say Iterate to Infinity is 1 Inf WHAT say gather is gather take
  • 从asp.net获取AD用户objectGuid的身份验证

    我在 ASP NET 应用程序中使用 Windows 身份验证 我想知道如何最好地从当前登录的用户获取 objectGuid 问候 埃吉尔 建议的解决方案相当昂贵 更好的解决方案是使用 SID 来查找帐户 而不是通过域和用户名进行搜索 us
  • 按枚举描述排序

    我正在开发一个首先使用 EF 代码的 ASP NET MVC 项目 我面临着需要通过枚举描述进行排序的情况 public partial class Item public enum MyEnumE Description descript
  • JPA Criteria 使用单表继承对实体层次结构进行查询

    假设我有以下实体 Entity Inheritance strategy SINGLE TABLE DiscriminatorColumn name type public abstract class BaseEntity private
  • 使用 DocumentBuilder.parse 解析格式良好的 XML 时如何关闭验证?

    我正在使用 Java 6 我想解析我知道格式良好的 XHTML 因此 我不想对文档中引用的 DTD 或其他模式进行任何验证 但是 我无法弄清楚如何关闭该验证 我有 DocumentBuilderFactory factory Documen
  • Allegro 5 在调用 al_clear_to_color(ALLEGRO_COLOR) 时崩溃

    我从 Allegro 5 开始 但很快我就陷入了我正在编写的第二个类似 hello world 的程序中 经过一番调试 我得出结论 程序在调用该函数时崩溃了al clear to color ALLEGRO COLOR 我尝试过静态和动态链
  • 对称整数到整数加密

    我需要一些关于如何将一个 int 加密为另一个 int 的实际示例 并且需要一个密钥来解密该值 就像是 encrypt 1 secret key 67123571122 decrypt 67123571122 secret key 1 这家
  • 如何在 Asp.Net MVC 中动态插入部分视图

    我正在将 Webforms 站点迁移到 MVC 在我的网络表单网站中 我的页面利用了用户控件的各种组合 然后是 html 块 然后是标签 文本框等 我不想对每个页面进行硬连线 因此我将从 CMS 驱动每个页面的输出 该 CMS 指定将控件插
  • bash Heredoc 可以将其结果直接放入变量中吗?

    我有一些这样的代码 CMD cat lt
  • 我的领域路径定义的 #if TARGET_OS_SIMULATOR 代码有什么问题?

    我有这个代码 if TARGET OS SIMULATOR let device false let RealmDB try Realm path Users Admin Desktop realm Realm realm else let
  • 检索 CSS 是否需要“getPropertyValue”方法?

    你能告诉我为什么我们需要使用getPropertyValue方法 如果我们只能使用getComputedStyle one 例如 据我了解 这将起作用 var s getComputedStyle element null opacity
  • 错误! “sudo”不是 Play 的有效属性

    我有一个 ansible 播放文件 它必须执行两个任务 第一个任务是在本地计算机上获取磁盘使用情况 另一个任务是获取远程计算机的磁盘使用情况并在远程计算机中安装 apache2 当我尝试运行该文件时出现错误 错误 sudo 不是 Play
  • 带有 json 正文的 Swagger POST

    我正在尝试使用 swagger 编写服务器响应的静态 json 文件 我被帖子正文困住了 不知道如何描述它 它看起来与 Grooveshark api 非常相似 其中有一个页面和不同的帖子参数 因此 给出grooveshark的例子 htt
  • 对 CollectionViewSource 感到困惑(SelectedItem 无法在组合中工作)

    我有一堆组合 它们都共享相同的可用选项 这些选择在我的 ViewModel 公开的集合中提供 一切都很好 花花公子 我现在想要对这些选择进行排序 所以我决定公开一个ICollectionView来自我的 ViewModel 而不是我平常的R
  • 将 plupload 与 MVC3 结合使用

    因此 我在 MVC3 中使用 flash 运行时实现了 plupload 它工作完美 因为它使用更正操作上传并运行全部内容 但是 我真的很希望能够控制响应 并在 plupload 中处理它 但我似乎无法得到任何响应 我尝试过覆盖 fileU
  • ambari hadoop 安装期间权限被拒绝(publickey、gssapi-keyex、gssapi-with-mic、密码)

    我正在尝试使用 ambari 部署 hadoop 集群 但是当我选择具有 FQDN 的主机名并继续配置时 我收到 ssh 的权限被拒绝错误 脚步 1 使用 ssh keygen 作为 root 生成 rsa 密钥 更改了 ssh 700 和
  • 我什么时候会使用 AppDomain?

    我对反射相当陌生 我想知道我会使用 第二个 AppDomain 做什么 在商业应用中会有什么实际应用 有很多用途 辅助 AppDomain 可以提供一定程度的隔离 类似于操作系统提供的进程隔离 我使用它的一个实际用途是动态加载 插件 DLL
  • 如何在android中将url加载到webview时显示进度?

    我正在将 url 加载到 webview 中 WebView webview WebView findViewById R id webview webview loadUrl url 加载网址需要一些时间 在此期间显示空白屏幕 我想在加载