当我单击一个按钮BUTTON
时,我将显示一个 ProgressDialog 弹出窗口,其中显示了圆形的进度表。现在应该运行 N 秒,然后,有一些代码仅在临时创建的 ProgressDialog 实例消失后(当 N 秒结束时)执行。该代码在 TextView 中显示了一些文本,每次单击时文本都会更改BUTTON
,并且图像也应该更改。但是只有在 ProgressDialog 结束后才能看到更改
但问题是,一旦我点击 BUTTON
,文本已经改变,并且 ProgressDialog 循环对话框播放 N 秒,这是不应该发生的 - 只有在 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 秒结束时,在暗淡的应用程序屏幕中看到所有内容。
我希望它显示更改后的图像和文本(代码中的对象-分别为 imageView 和 wIHM),在进度对话框循环完成后,焦点又回到了应用程序的视图上。