La barra de progreso horizontal no actualiza su estado

Estoy intentando mostrar la barra de progreso horizontal " Not ProgressDialog " en mi actividad como esta Introduzca aquí la descripción de la imagen

Aquí es lo que mi archivo xml contiene

<ProgressBar android:id="@+id/pdialog" style="?android:attr/progressBarStyleHorizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:indeterminate="true" /> 

Estoy intentando actualizar su estado usando la clase de AsyncTask fijando pdialog.setProgress () pero su no demostrar cualquier progreso, él trabaja con el dialogo del progreso pero no con la barra de progreso horizontal.

 public class MainActivity extends Activity { private SQLiteDatabase db; private Cursor cursor; private ProgressBar pdialog; private ImageButton btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.start); btn = (ImageButton) findViewById(R.id.startbtn); pbar = (ProgressBar) findViewById(R.id.progressBar1); pdialog = (ProgressBar) findViewById(R.id.pdialog); pdialog.setMax(100); pdialog.setProgress(20); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { pdialog.setVisibility(View.VISIBLE); new DownloadFilesTask().execute(); } }); } private class DownloadFilesTask extends AsyncTask<Void, Integer, Integer> { int load = 1; protected Integer doInBackground(Void... params) { try { load = 10 * i; MainActivity.this.runOnUiThread(new Runnable() { @Override public void run() { pdialog.setProgress(load); } }); } } catch (Exception e) { } } protected void onProgressUpdate(Integer... progress) { if (progress[0] == 100) { pdialog.setVisibility(View.INVISIBLE); } } protected void onPostExecute(Integer params) { } } } 

Si la variable de load cambia correctamente:

En lugar de esto:

 MainActivity.this.runOnUiThread(new Runnable() { @Override public void run() { pdialog.setProgress(load); } }); 

Usted podría usar:

 publishProgress(load); 

Que automáticamente llaman a la interfaz de usuario Hilo:

 protected void onProgressUpdate(Integer... progress) { int p = progress[0]; if (p >= 100) { pdialog.setVisibility(View.INVISIBLE); }else{ pdialog.setProgress(p); } } 

ACTUALIZAR:

Eliminar android:indeterminate="true" como se señala en otra respuesta.

En el archivo de diseño, elimine el siguiente atributo android:indeterminate="true" del elemento ProgressBar .

Tuve la misma pregunta, pero encontré que el problema es la interfaz View.OnClickListener (). Cuando el pbar se puso fuera de la btn.setOnClickListener (nuevo View.OnClickListener () {}), funcionó bien. De lo contrario, no se actualizó. Entonces, hice un constructor que pasó el pbar en el OnXXXClickListener.

 private class OnXXXClickListener implements View.OnClickListener() { private ProgressBar bar; public OnXXXClickListener(ProgressBar bar) { this.bar = bar; } @Override public void onClick(View v) { bar.setProgess(50); new DownloadFilesTask().execute(); } } 
  • Widget de ProgressBar personalizado
  • ¿Hay una barra de progreso negra para ser visible en un fondo blanco?
  • Android Indeterminado ProgressBar no gira
  • Cómo cambiar el color de la barra de progreso en Android? - (Traté de una manera, y no funciona)
  • Animar la actualización de ProgressBar en Android
  • Android: muestra texto en el centro de la barra de progreso
  • Progreso personalizado no se puede mostrar a veces
  • Descargar imágenes con AsyncTask
  • ProgressBar con un countdowntimer - Android
  • Mostrar barra de progreso durante la descarga
  • ¿Cómo dar una barra de progreso para la descarga?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.