加载WebView页面时如何为警报对话框设置不同的标题?

发布于 2024-12-23 03:38:35 字数 1094 浏览 6 评论 0原文

我想在加载 WebView 页面但它不起作用时为警报对话框设置不同的标题。

这是代码片段:

final AlertDialog.Builder alert = new AlertDialog.Builder(
        mContext);
// alert.setTitle("Loading...");
final WebView wv = new WebView(mContext);

wv.loadUrl("http://10.0.51.133/androidview/");
wv.getSettings().setJavaScriptEnabled(true);
wv.setVerticalScrollBarEnabled(false);

WebViewClientLoader loader= new WebViewClientLoader(alert);
wv.setWebViewClient(loader);
wv.setWebViewClient(new WebViewClient() {

    @Override
    public void onPageFinished(WebView view, String url) {
        // TODO Auto-generated method stub
        alert.setTitle("Loading...");
        super.onPageFinished(view, url);
    }

    @Override
    public void onPageStarted(WebView view, String url,
            Bitmap favicon) {
        // TODO Auto-generated method stub
        alert.setTitle("Finished");
        super.onPageStarted(view, url, favicon);
    }
});

private class webviewclient extends WebViewClient{

}

wv.loadUrl("file:///android_asset/Like.html");
alert.setView(wv);

alert.show();

I want to set different title for alert dialog when WebView page is loaded but its not working.

here is the code snippet:

final AlertDialog.Builder alert = new AlertDialog.Builder(
        mContext);
// alert.setTitle("Loading...");
final WebView wv = new WebView(mContext);

wv.loadUrl("http://10.0.51.133/androidview/");
wv.getSettings().setJavaScriptEnabled(true);
wv.setVerticalScrollBarEnabled(false);

WebViewClientLoader loader= new WebViewClientLoader(alert);
wv.setWebViewClient(loader);
wv.setWebViewClient(new WebViewClient() {

    @Override
    public void onPageFinished(WebView view, String url) {
        // TODO Auto-generated method stub
        alert.setTitle("Loading...");
        super.onPageFinished(view, url);
    }

    @Override
    public void onPageStarted(WebView view, String url,
            Bitmap favicon) {
        // TODO Auto-generated method stub
        alert.setTitle("Finished");
        super.onPageStarted(view, url, favicon);
    }
});

private class webviewclient extends WebViewClient{

}

wv.loadUrl("file:///android_asset/Like.html");
alert.setView(wv);

alert.show();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

酒中人 2024-12-30 03:38:35

它完美工作..我在检查后发布--------

public class MyActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    WebView web=new WebView(this);
    web.setWebViewClient(new WebViewClient(){

        @Override
        public void onLoadResource(WebView view, String url) {
            super.onLoadResource(view, url);
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            alert.setTitle("Pages Finished");
        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
            alert.setTitle("Pages Started");
        }

    });
    web.setWebChromeClient(new WebChromeClient(){

    });
    web.loadUrl("http://www.google.com");
    builder=new AlertDialog.Builder(this);
    builder.setView(web);
    builder.setTitle("Loading...");
    alert=builder.create();
    alert.show();
}
AlertDialog alert;
Builder builder;
@Override
protected void onDestroy() {
    super.onDestroy();

}

@Override
protected void onPause() {
    super.onPause();
}

}

在此处输入图像描述

然后它发生变化到

在此处输入图像描述

Its perfectly work..i am posting after checking-------

public class MyActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    WebView web=new WebView(this);
    web.setWebViewClient(new WebViewClient(){

        @Override
        public void onLoadResource(WebView view, String url) {
            super.onLoadResource(view, url);
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            alert.setTitle("Pages Finished");
        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
            alert.setTitle("Pages Started");
        }

    });
    web.setWebChromeClient(new WebChromeClient(){

    });
    web.loadUrl("http://www.google.com");
    builder=new AlertDialog.Builder(this);
    builder.setView(web);
    builder.setTitle("Loading...");
    alert=builder.create();
    alert.show();
}
AlertDialog alert;
Builder builder;
@Override
protected void onDestroy() {
    super.onDestroy();

}

@Override
protected void onPause() {
    super.onPause();
}

}

enter image description here

and then it changes to

enter image description here

冧九 2024-12-30 03:38:35

当创建操作系统开始加载webview时,您只需使用setCustomTitle方法即可。

然后,当 onLoadCompleted 时,您可以再次将 CustomTitle 设置为第二个。

这是参考

You just have use the method setCustomTitle, when create os start to load the webview.

Then, when onLoadCompleted, you can setCustomTitle again to the second one.

Here is the reference

叹沉浮 2024-12-30 03:38:35

请参阅此示例: 此链接

实施后,您必须设置根据执行情况警报标题的不同值。所以它显示了基于正在加载的 Webview 的不同对话框。

请参阅此示例了解其工作原理和使用方式来实施它。

See this Example: THIS LINK

After implementing that you have to set the different value for the alert title based on the execution. So It shows the different Dialog based on the Webview is loading.

See this example for how it works and how to implement it.

倾城泪 2024-12-30 03:38:35

我认为在调用alert.show()之前,应该调用alert.create()。
这应该可以解决你的问题。

I think before you call alert.show(), you should call alert.create().
This should solve your problem.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文