2013-03-07 5 views
2

Я новичок в программировании для Android, и у меня есть требование, чтобы вытащить пользователей из контактов и отобразить их все на другой деятельности. Я сделал все основные функции, но есть требование, чтобы я хотел показать прогресс, когда выборка идет полным ходом.как показать индикатор выполнения в android при переходе от одного вида деятельности к другому действию

+2

использование асинхронной задачи для извлечения контактов или создать раздельный поток, чтобы получить контакты и показать ProgressBar на UI потоке после завершения задачи закрыть индикатор – Pragnani

+0

здесь код я использовал для этого есть какие-либо проблемы в этот код http://stackoverflow.com/questions/15271587/how-to-show-progress-in-android/15273301?noredirect1_comment21547446_15273301 – Supreet

ответ

2

В моих приложениях я использую следующий код (взятый из this answer), чтобы делать то, что вы пытаетесь сделать, и он работает как прелесть для меня.

mButton.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View view) { 
     new AsyncTask<Integer, Long, Boolean>() 
     { 
      ProgressDialog mProgressDialog; 
      @Override 
      protected Boolean doInBackground(Integer... params) 
      { 
       mProgressDialog = new ProgressDialog(MyActivity.this); 
       mProgressDialog.setMax(params[0]); 
       mProgressDialog.setIndeterminate(false); 
       mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
       publishProgress(0L); 

       long startTime = System.currentTimeMillis(); 
       long waitTime = params[0] * 1000; 
       try 
       { 
        while (System.currentTimeMillis() - startTime < waitTime) 
        { 
         Thread.sleep(500); 
         publishProgress(System.currentTimeMillis() - startTime); 
        } 
       } 
       catch (Exception e) 
       { 
        return false; 
       } 
       return true; 
      } 

      @Override 
      protected void onProgressUpdate(Long... values) 
      { 
       if (values[0] == 0) 
       { 
        mProgressDialog.show(); 
       } 
       else 
       { 
        mProgressDialog.setProgress((int) (values[0]/1000)); 
       } 
      } 

      @Override 
      protected void onPostExecute(Boolean result) 
      { 
       mProgressDialog.dismiss(); 
       Intent i = new Intent(context, NewActivity.class); 
       startActivityForResult(i, 0); 
      } 
     }.execute(5); 
    }); 
+0

вы имеете в виду, что я извлекаю все данные о первом действии и после этого onPostExecute() откройте его в другой деятельности – Supreet

+0

Надеюсь, это сработало для вас. Coz это работает как чудо для меня. – Swayam

+0

вот код, который я пробовал, пожалуйста, проверьте один раз, где проблема. Http://stackoverflow.com/questions/15271587/how-to-show-progress-in-android/15278479?noredirect=1#15278479 – Supreet

Смежные вопросы