データベース操作用の非同期タスクがあります
タスクを開始する前に、prograssBar を表示するために、この関数を呼び出しsetVisibility();
ます
public static void showProgressBar()
{
Log.e("TEST","Try to show ProgressBar, Visibiliy: " + prog_bar.getVisibility());
if(prog_bar != null)
{
prog_bar.setVisibility(RelativeLayout.VISIBLE);
Log.e("TEST","Success");
}
else
{
Log.e("TEST","prog_bar != null");
}
Log.e("TEST","Visibiliy: " + prog_bar.getVisibility());
}
PostExecute で関数を呼び出します。
public static void hideProgressBar()
{
Log.e("TEST","Try to hide ProgressBar, Visibiliy: " + prog_bar.getVisibility());
if(prog_bar != null)
{
prog_bar.setVisibility(RelativeLayout.INVISIBLE);
Log.e("TEST","Success");
}
else
{
Log.e("TEST","prog_bar != null");
}
Log.e("TEST","Visibiliy: " + prog_bar.getVisibility());
}
奇妙なことに、メソッドは正しく呼び出され、ログも正しく、エラーは表示されませんが、progressBar は表示されません。
Android 2.2、Windows 7、エミュレーターおよび GalaxyTab でテスト済み
よろしくシュワンディ
編集:
私の方法を次のように変更しました:
public static void hideProgressBar()
{
if(prog_bar != null)
{
Log.e("TEST","Try to hide ProgressBar, Visibiliy: " + prog_bar.getVisibility());
prog_bar.setVisibility(View.GONE);
Log.e("TEST","Success");
}
else
{
Log.e("TEST","prog_bar != null");
}
Log.e("TEST","Visibiliy: " + prog_bar.getVisibility());
}
public static void showProgressBar()
{
if(prog_bar != null)
{
Log.e("TEST","Try to show ProgressBar, Visibiliy: " + prog_bar.getVisibility());
prog_bar.setVisibility(View.VISIBLE);
Log.e("TEST","Success");
}
else
{
Log.e("TEST","prog_bar != null");
}
Log.e("TEST","Visibiliy: " + prog_bar.getVisibility());
}
まだ動作しません。
また、prog_bar が ProgressBar 自体であることを変更しました。
prog_bar = (ProgressBar) findViewById(R.id.progressBar1);