进度条没有更新进度

Progress Bar Did Not Update The Progress

我的 activity 中有一个进度条。

当我点击按钮时,我想做点什么。我尝试用这段代码模拟这个过程(按下按钮时的代码):

void btn_clicked(object sender, EventArgs e){
    int progressStatus = 0;

    while (progressStatus < 100)
    {
       progressStatus += 1;

       progressBar.SetProgress(progressStatus, false);

       Thread.Sleep(1000);
    }
}

我尝试做那个代码,但它没有更新进度。

但是当我做这样的事情时:

void btn_clicked(object sender, EventArgs e){

       progressBar.SetProgress(progressBar.progress += 1, false);

}

有效。

我必须尝试 运行 在 RunOnUiThread、RunOnUiThread 或 Handler.Post 中设置进度,但是当我必须在我的方法中循环时。它使进度条没有更新。

在 While 循环中,我试过这个:

while (progressStatus < 100)
{
   progressStatus += 1;


  // I also have try to change "RunOnUIThreadSynchronous"
  // with Handler.Post" or "RunOnUIThread"
   this.RunOnUIThreadSynchronous(() =>{
     progressBar.SetProgress(progressStatus, false);
   });

   Thread.Sleep(1000);
}

有人可以帮助我吗?

我认为问题出在下面的代码行:

int progressStatus = 0;

在第一个函数中,上面的代码行将 progressStatus 重置为零,而在第二个函数中,它没有初始化变量。尝试将初始化移动到函数范围之外,可能是函数声明之前的一行。这应该有效:

int progressStatus = 0;
void btn_clicked(object sender, EventArgs e){
  while (progressStatus < 100)
  {
     progressStatus += 1;

     progressBar.SetProgress(progressStatus, false);
  }
}

I have to try run set progress in RunOnUiThread, RunOnUiThread, or Handler.Post but when I have to loop in my method. It makes progress bar did not update. Can someone help me?

听起来您正试图在 UI 线程中执行您的循环方法,这将解释循环期间栏不更改值。在 new/different 线程中尝试 运行 你的方法。