android - 如何使用进度条?

标签 android android-progressbar

我有一个搜索功能(使用网络服务),需要一段时间才能将数据加载到我的膨胀布局中。我想显示一个 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 线程上运行 preexecutepostexecutepublishprogress,以及一个 doInBackground在后台运行。 google 有很多赞叹声。 .

试试这个 one .

关于android - 如何使用进度条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11638948/

相关文章:

c# - Android Xamarin 后台服务 - 每 x 分钟获取一次 GPS 位置?

javascript - Android 上的手机唤醒后 HTML5 GPS 地理定位失败

android - 媒体播放器在android中播放暂停

Android AsyncTask 没有更新进度条

android - 两个给定日期之间的进度条 - Android Studio

android - 如何更改进度条进度颜色?

android - 如何使ListView中的Header View不可选?

java - 为什么 future.get() 对于 Volley RequestFuture 总是超时?

android - 使用 setMessage() 在 AlertDialog 中显示多行文本和变量

Android ActionBarSherlock 在 Fragment(不是 FragmentActivity)中显示 ProgressBarIndeterminate