以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 Android 高级开发 』 (http://bbs.xml.org.cn/list.asp?boardid=53) ---- 【代码】AsyncTask 里面如何添加进度条 (http://bbs.xml.org.cn/dispbbs.asp?boardid=53&rootid=&id=126779) |
-- 作者:挥戈回日 -- 发布时间:7/22/2013 5:21:00 PM -- 【代码】AsyncTask 里面如何添加进度条 很多网上进度条的demo都是handler的。但是如果用AsyncTask怎么能实现进度条?两种办法,一个是看google API 一种是看下面这个demo。此demo全是核心代码没有任何废话。 public class MainActivity extends Activity { ProgressBar progressBar; Button buttonStartProgress; public class BackgroundAsyncTask extends AsyncTask<Void, Integer, Void> { int myProgress; @Override protected void onPostExecute(Void result) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, "onPostExecute", Toast.LENGTH_LONG).show(); buttonStartProgress.setClickable(true); } @Override protected void onPreExecute() { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, "onPreExecute", Toast.LENGTH_LONG).show(); myProgress = 0; } @Override protected Void doInBackground(Void... params) { // TODO Auto-generated method stub while(myProgress<100){ myProgress++; publishProgress(myProgress); SystemClock.sleep(100); } return null; } @Override protected void onProgressUpdate(Integer... values) { // TODO Auto-generated method stub progressBar.setProgress(values[0]); } } /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); buttonStartProgress = (Button)findViewById(R.id.startprogress); progressBar = (ProgressBar)findViewById(R.id.progressbar_Horizontal); progressBar.setProgress(0); buttonStartProgress.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub new BackgroundAsyncTask().execute(); buttonStartProgress.setClickable(false); }}); } } 在xml里面做如下设置 由于只有一个类就不上传源码了。 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
31.250ms |