开发者

ProgressDialog does not want to update the message

开发者 https://www.devze.com 2023-01-20 00:59 出处:网络
I just tried to implement a progressdialog and I have some issues to change the text during my long and complex 开发者_JAVA百科calculations.

I just tried to implement a progressdialog and I have some issues to change the text during my long and complex 开发者_JAVA百科calculations.

for (String aString:myStringArray){
    Log.v(TAG, aString);
    mProgressDialog.incrementProgressBy(1);
    mProgressDialog.setMessage(aString);
}

I can clearly see the incrementProgressBy working and my dialog updating, but the message does not change.

Any idea on how to make that work?

Thank a lot.


Just found the answer, that's working fine:

runOnUiThread(changeMessage);

with that code:

private Runnable changeMessage = new Runnable() {
    @Override
    public void run() {
        //Log.v(TAG, strCharacters);
        m_ProgressDialog.setMessage(strCharacters);
    }
};


I upload pictures to Firebase in a loop and updating the ProgressDialog each image:

(I am in a Fragment, so I use getActivity() before calling to runOnUiThread())

List<Bitmap> bitmaps;
int picCounter = 1;
...

progressDialog = ProgressDialog.show
 (getContext(), "sending...", "just a minute", false, false);

new Thread(new Runnable() {
    @Override
    public void run() {
        for (int i = 0; i < bitmaps.size(); i++) {

            String filename = String.valueOf(i);

            uploadPic(bitmaps.get(i), "img" + filename, new MyCallback() {
                @Override
                public void onFinish() {
                    picCounter++;
                    Objects.requireNonNull(getActivity()).runOnUiThread(new Runnable() {
                        public void run() {
                            progressDialog.setTitle ("upoading " + picCounter + "image from " + bitmaps.size());
                        }
                    });
                }
            });
        }
   }
}).start();

uploadPic method:

public interface MyCallback { void onFinish ();}

private void uploadPic(final Bitmap bitmap, final String fileName, final MyCallback callback) {
   ... // uploading to firebase and then:
   callback.onFinish();
}
0

精彩评论

暂无评论...
验证码 换一张
取 消