2011年11月25日

【Android】WebViewで読み込み中にダイアログを表示する

今回はAndroidアプリの解説をいたします。

Androidアプリの解説は今回が初めてなので、
簡単なものから解説いたします。

Eclipseの設定やAndroid SDKのインストールは各自出来ているものといたします。

今回はAndroidのWebViewでサイト読み込み中にDialogを表示する方法です。
Caution: 記事が古いです。BadTokenException - unable to add windowへの対処法を参照してください。


まずはWebViewClientクラスを拡張します。
MyWebViewClient.javaを作成しましょう。
(packageはどこでも良いです。)

MyWebView.java
package com.shonanshachu.webclient;

import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MyWebViewClient extends WebViewClient{
    private ProgressDialog progress;

    public MyWebViewClient(){
        super();
        progress = null;
    }

    public void onPageStarted(WebView view, 
        String url, Bitmap favicon) {
        progress = new ProgressDialog(view.getContext());
        progress.setMessage(
            view.getContext().getString("Now Loading...")
        );
        progress.show();
    }

    public void onPageFinished(WebView view, String url){
        if(progress != null && progress.isShowing()){
            progress.dismiss();
        }
        progress = null;
    }
}

あとはこれを読み込み元で指定します。

MainActivity.java onCreate()内
WebView wv = (WebView) findViewById(R.id.web_view);
    wv.setWebViewClient(new MyWebViewClient());

以上で読み込み中に"Now Loading"と表示されます。
表示を変更したい場合にはMyWebView.javaの"Now Loading"を変更してください。