ダイアログを表示しようとするとエラーが出る

ダイアログを表示しようとすると、

Can't create handler inside thread that has not called Looper.prepare()

というエラーが出ることがあります。

これはメインスレッド以外でGUIにアクセスすると起こるようです。

このような場合は、以下のようにするとダイアログを表示できます。

[java]

(MainActivity.this).runOnUiThread(new Runnable() {

@Override

public void run() {

mProgressDialog = new ProgressDialog(MainActivity.this);

mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);

mProgressDialog.setMessage("Please wait...");

mProgressDialog.setCancelable(true);

mProgressDialog.show();

}

});

[/java]


イラストでよくわかるAndroidアプリのつくり方