Webservice加载数据时如何显示Progressbar?

Shr*_*dha 1 android web-services progress-bar

我正在使用webservice从webservice获取n个记录.我正在使用WS Client来调用webservices.现在我想有一个进度条,显示已加载的n个数据中有多少个.有没有可能实现这一目标?我正在使用AsyncTask在后台调用WS.

Aal*_*rma 7

尝试这样的事情,这基本上显示了在异步任务运行时更新进度条的示例

  public class AndroidAsyncTaskProgressBar 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(AndroidAsyncTaskProgressBar.this,
         "onPostExecute", Toast.LENGTH_LONG).show();
   buttonStartProgress.setClickable(true);
  }

  @Override
  protected void onPreExecute() {
   // TODO Auto-generated method stub
   Toast.makeText(AndroidAsyncTaskProgressBar.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.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);
   }});
 }
}
Run Code Online (Sandbox Code Playgroud)

  • 对,接受!! (2认同)