在这个例子中,任何人都可以实现进度条吗?
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);
}
}
}
执行循环时我必须显示进度条。我做过几个例子,但没有什么是正确的。任何人都可以帮助我吗?
答案 0 :(得分:3)
这是Progresss Dialog
代码段
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