进度条没有更新进度
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 线程中尝试 运行 你的方法。
我的 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 线程中尝试 运行 你的方法。