Android中的ProgressBar

时间:2011-09-16 04:26:37

标签: android

在这个例子中,任何人都可以实现进度条吗?

package org.postandget;
import org.postandget.R;

public class main extends Activity {


        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
             for(int i=0;i<1000;i++)
                {
                        System.out.println(i);
                }

                }
 }

执行循环时我必须显示进度条。我做过几个例子,但没有什么是正确的。任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:3)

这是Progresss Dialog

的简单示例

Example 1

Example 2

代码段

package org.postandget;
import org.postandget.R;

public class main extends Activity {
ProgressDialog bar;

@Override
public void onCreate(Bundle savedInstanceState) 
{
     super.onCreate(savedInstanceState);
     setContentView(R.layout.main);
     new BackgroundTask().execute("Main");
 }
class BackgroundTask extends AsyncTask<String , Integer, Void>
{
    @Override
    protected void onPreExecute()
    {
        bar = new ProgressDialog(main.this);
        bar.setMessage("Processing..");
        bar.setIndeterminate(true);
        bar.show();

    } 
    @Override
    protected Void doInBackground(String... params) 
    {
        for(int i=0;i<10;i++)
                {
                        System.out.println(i);
            try
            {
                Thread.sleep(1000);
            }
            catch(Exception e)
            {
                System.out.println(e);
           }    
                }
        return null;
    }
    @Override
    protected void onPostExecute(Void result) 
    {
        bar.dismiss();
      }
}
}

答案 1 :(得分:0)

在执行任务时处理进度的正确方法是实现AsyncTask。它具有在后台线程中执行任务的逻辑,同时从UI线程更新进度。检查参考,并在谷歌搜索示例:

http://developer.android.com/reference/android/os/AsyncTask.html

答案 2 :(得分:0)

这种操作最干净的方法是使用AsyncTask.Use onPreExecute()来显示你的ProgressDialog,doInBackground来做你的东西,使用onPostExecute来解雇你的ProgressDialog。 ---

http://brighthub.com/mobile/google-android/articles/82805.aspx