6

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

4 に答える 4

22

その完璧な仕事..私はチェックした後に投稿しています-------

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

}

ここに画像の説明を入力してください

そしてそれはに変わります

ここに画像の説明を入力してください

于 2012-02-22T12:17:51.130 に答える
5

create osがWebビューのロードを開始するときに、メソッドsetCustomTitleを使用するだけです。

次に、onLoadCompletedのときに、CustomTitleを2番目に再度設定できます。

これがリファレンスです

于 2011-12-26T09:11:37.963 に答える
3

この例を参照してください:このリンク

それを実装した後、実行に基づいてアラートタイトルに異なる値を設定する必要があります。つまり、Webviewがロードされていることに基づいて異なるダイアログが表示されます。

それがどのように機能し、どのように実装するかについては、この例を参照してください。

于 2012-02-20T06:46:38.797 に答える
2

alert.show()を呼び出す前に、alert.create()を呼び出す必要があると思います。これで問題が解決するはずです。

于 2012-02-23T21:26:37.977 に答える