在活动上显示无限期的进度周期

时间:2012-01-03 11:08:22

标签: android android-layout android-progressbar

我希望我的应用程序向Activity的布局显示无限进度条(您知道,循环),就像youtube应用程序一样。我怎么能这样做?感谢。

1 个答案:

答案 0 :(得分:2)

您好,您可以使用 setProgressBarIndeterminateVisibility(boolean)来显示无限制的进度条。这是示例代码:

private Button buttonUpStartUpload = null;
        private boolean mToggleIndeterminate = false;



@Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

        setContentView(R.layout.lyt_upload_main);
        setProgressBarIndeterminateVisibility(mToggleIndeterminate);

        buttonUpStartUpload = (Button) findViewById(R.id.buttonUpStartUpload);

        buttonUpStartUpload.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                UploadingAsyncTask uploadingAsyncTask = new UploadingAsyncTask();
                uploadingAsyncTask.execute("temp","doinback","returnparam");
                }
        });


    }//onCreate Ends

    @Override
    protected void onStart() {
        // TODO Auto-generated method stub
        super.onStart();

    }

    @Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
    }

    public class UploadingAsyncTask extends AsyncTask<String, String, String>{

        Uploader uploader = new Uploader();
        ProgressDialog progDialogUpload = null;
        int imageIndex = 1;
        @Override
        protected void onPreExecute() {
            // TODO Auto-generated method stub
            super.onPreExecute();
            mToggleIndeterminate = !mToggleIndeterminate;
            setProgressBarIndeterminateVisibility(mToggleIndeterminate);
        }

        @Override
        protected String doInBackground(String... params) {
            // TODO Auto-generated method stub

            publishProgress("Finish","3");
            return "success";
        }

        @Override
        protected void onProgressUpdate(String... values) {
            // TODO Auto-generated method stub
            super.onProgressUpdate(values);
            if(values[0] == "Finish"){
                imageIndex++;
            }
            }

        @Override
        protected void onPostExecute(String result) {
            // TODO Auto-generated method stub
            super.onPostExecute(result);
            if(result.equalsIgnoreCase("success") || result == "success"){
                mToggleIndeterminate = !mToggleIndeterminate;
                setProgressBarIndeterminateVisibility(mToggleIndeterminate);
            }
        }       

    }//UploadingAsyncTask ends