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

Posted

技术标签:

【中文标题】加载 WebView 页面时如何为警报对话框设置不同的标题?【英文标题】:how to set different title for alert dialog when WebView page is loaded? 【发布时间】:2012-01-27 21:23:55 【问题描述】:

WebView 页面已加载但无法正常工作时,我想为警报对话框设置不同的标题。

这里是sn-p的代码:

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();

【问题讨论】:

【参考方案1】:

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

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();

然后变成

【讨论】:

【参考方案2】:

你刚刚使用了setCustomTitle方法,当create os开始加载webview。

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

这里是reference

【讨论】:

【参考方案3】:

请参阅此示例:THIS LINK

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

请参阅this example,了解它的工作原理和实施方式。

【讨论】:

【参考方案4】:

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

【讨论】:

以上是关于加载 WebView 页面时如何为警报对话框设置不同的标题?的主要内容,如果未能解决你的问题,请参考以下文章

如何为特定的星期几设置重复通知?

如何在java中创建一个加载栏

滚动时如何为 recyclerview 项目设置动画?

弹出键盘时如何为 UITableView 设置动画?

序列化时如何为循环值设置null

更改设备方向时如何为uiimageview设置动画