ボタンをクリックするとBUTTON
、ProgressDialog ポップアップが表示されます。これは、円形の進行状況メーターを示しています。これは N 秒間実行されることになっています。その後、一時的に作成された ProgressDialog インスタンスが消えた後 (N 秒が経過したとき) にのみ実行されるコードがいくつかあります。コードは TextView にテキストを表示し、クリックするたびにテキストが変化しBUTTON
、画像も変化するはずです。ただし、変更は ProgressDialog が終了した後にのみ表示されます
しかし、問題は、クリックするとすぐに BUTTON
、テキストが既に変更され、ProgressDialog 循環ダイアログが N 秒間再生されることです。これは発生しないはずです。アプリView
が再びフォーカスされ、テキストが変更されます。
コードは次のとおりです。
BUTTON.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
imageView.setVisibility(ImageView.INVISIBLE);
//Choosing MESXs type to show =================================
if(mTSFlag==1)
mTS=holA;
else
mTS=holB;
// ProgressDialog =================================
final ProgressDialog progressRing=ProgressDialog.show(MainActivity.this, "Please wait..", "This takes time..", true);
progressRing.setCancelable(false);
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try
{
Thread.sleep(3000);
}catch(Exception e){}
progressRing.dismiss();
}
}).start();
//Image choosing logic =================================
imageView.setVisibility(ImageView.VISIBLE);
if(pTOGGLE)
imageView.setImageResource(R.drawable.IMG_XXT);
else
imageView.setImageResource(R.drawable.IMG_XYT);
wIHM_result.setText(mTS);
}
});
問題は、Image Logic
(ヘッダー コメントでマークされた)ProgressDialgo
部分がコードの部分の前に実行されているように見えることです。適切な画像が表示され、テキストが変更されます。ProgressDialog が N 秒の終わりまで進行している間、淡色表示されたアプリ画面ですべてを見ることができます。
Progress Dialog の循環が終了し、フォーカスがアプリのビューに戻った後、変更された画像とテキスト (コード内のオブジェクト - それぞれ imageView と wIHM) を表示したいと考えています。