0

ボタンをクリックすると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) を表示したいと考えています。

4

3 に答える 3