私のアプリケーションにプログレスバーを実装しようとしています。 このプログレスバーはボタンをクリックすると表示され、スレッドも一緒に開始されます。スレッドが完了すると、私はprogressBarを非表示にしようとしています。しかし、それは例外をキャッチしてexcuting:
progressbar.setVisibility(View.GONE);
例外:
android.view.ViewRoot $ CalledFromWrongThreadException:ビュー階層は、その見解に触れることができます作成しただけ元のスレッド。
私のコードは次のとおりです。
Thread thredUpdate = new Thread()
{
public void run()
{
ClearDatabase();
progressbar.setVisibility(View.GONE);
}
};
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setProgressBarVisibility(true);
ProgressBar progressbar = (ProgressBar)findViewById(R.id.progress);
progressbar .setVisibility(View.GONE);
btnUpdateDB.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View argBtnUpdateDB)
{
setProgressBarVisibility(true);
progressbar.setVisibility(View.VISIBLE);
try
{
if((progressbar.isEnabled()))
thredUpdate.start();
}
catch(Exception exSoap)
{
exSoap.printStackTrace();
}
} });
私はsetVisibility(View.GONE)を呼び出すことなく、このプログレスバーをキャンセルできますか?
は、あなたがUIスレッドからそれを呼び出す必要があります...
ありがとうございます。 – Jomia