我有一个搜索功能(使用网络服务),需要一段时间才能将数据加载到我的膨胀布局中。我想显示一个 ProgressBar
直到从 Web 服务获取数据。这是一个很小的时间间隔,因此我不为此使用 ProgressDialog
。我已经阅读了许多帖子和开发指南,但我无法找到在我的应用程序中使用它的方法。我的布局中有一个 Spinner
。一旦我从微调器下拉列表中选择了一个项目,我就会将字符串传递给搜索函数,该函数会获取数据并将数据加载到膨胀的布局中。
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Selection = spinner.getSelectedItem().toString();
search(Selection);
}
我创建了一个 ProgressBar,处理程序,如开发指南中所述。
private ProgressBar mProgress = new ProgressBar(SearchActivity.this, null, android.R.attr.progressBarStyleSmall);
private int mProgressStatus = 0;
private Handler mHandler = new Handler();
并说这是一个用于显示ProgressBar
的新线程
new Thread(new Runnable() {
public void run() {
while (mProgressStatus < 100) {
mProgressStatus = doWork();
// Update the progress bar
mHandler.post(new Runnable() {
public void run() {
mProgress.setProgress(mProgressStatus);
}
});
}
}
}).start();
如何跟踪搜索功能的进度以显示 ProgressBar
?
感谢您的阅读
最佳答案
您应该使用 AsyncTask而不是线程。 asyncTask 允许您在 UI 线程上运行 preexecute
、postexecute
和 publishprogress
,以及一个 doInBackground
在后台运行。 google 有很多赞叹声。 .
试试这个 one .
关于android - 如何使用进度条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11638948/