4

次のコードでプログレスバーを表示できます

pd = ProgressDialog.show(myActivity.this, "", "Loading. Please wait...", true);

簡単ですが、コードを実行したら、コードを削除したいのですが、その後dismissメソッドを実行すると、ダイアログボックスがまったく表示されません。

oncreateでラップされたコンテキストのコードを次に示します

pd = ProgressDialog.show(myActivity.this, "", "Loading. Please wait...", true);
runCode();  
setListAdapter(new CustomAdapter(myActivity.this)); 
pd.dismiss();

アクティビティのどこでも進行状況ダイアログを表示/非表示にできると思いましたが、間違っているに違いありません。

4

3 に答える 3

12

これが私が仕事に取り掛かったコードです

private class UpdateFeedTask extends AsyncTask<MyActivity, Void, Void> {

    private ProgressDialog mDialog;

    protected void onPreExecute() {
        Log.d(TAG, " pre execute async");
        mDialog = ProgressDialog.show(MyActivity.this,"Please wait...", "Retrieving data ...", true);

    }

    protected void onProgressUpdate(Void... progress) {
        Log.d(TAG, " progress async");     
    }

    @Override
    protected Void doInBackground(MyActivity... params) {
        // TODO Auto-generated method stub
        return null;
    }

    protected void onPostExecute(Void result) {
        Log.d(TAG, " post execute async");
        mDialog.dismiss();
    }

}
于 2010-12-10T23:53:00.310 に答える
2

私のサンプルコードsinnpetを参照してください。これがお役に立てば幸いです。

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.KeyEvent;
import android.widget.ProgressBar;

public class PlayActivity extends Activity {
    /** Called when the activity is first created. */

  private ProgressBar mProgress;
     private int mProgressStatus = 0;
     private int count=0;
     private Handler mHandler=new Handler();
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mProgress = (ProgressBar) findViewById(R.id.ProgressBar01);
        new Thread(myThread).start();

    }
    private Runnable myThread = new Runnable(){

     @Override
     public void run() {
     // TODO Auto-generated method stub
     while (mProgressStatus<=100){
     try{
     myHandle.sendMessage(myHandle.obtainMessage());
     Thread.sleep(1000);
     }
     catch(Throwable t){
     }
     }
     }

     Handler myHandle = new Handler(){

     @Override
     public void handleMessage(Message msg) {
     // TODO Auto-generated method stub
      mProgressStatus=mProgressStatus+10;
      count=mProgressStatus;
      Log.d("mProgressStatus",Integer.toString(count));
      mProgress.setProgress(mProgressStatus);
      if(count > 80)
            {
             Log.d("mProgressStatus",Integer.toString(mProgressStatus));
             counter.start();
            }
     }
     };
     };



}
于 2010-12-08T13:47:48.110 に答える
-3

プログレスバーを削除するには

ProgressBar progressbar = (ProgressBar)findViewById(R.id.progressbarID);

progressBar.setVisibility(View.INVISIBLE) ;

xmlでプログレスバーを非表示にし、次のように表示します

 ProgressBar progressbar = (ProgressBar)findViewById(R.id.progressbarID);

    progressBar.setVisibility(View.VISIBLE) ;
于 2014-04-21T06:34:51.010 に答える