FindViewById (android.R.id.progress) devuelve null

La lista de referencias de desarrolladores de Android lista R.id.progress entre los recursos de vista incorporados disponibles.

Sin embargo, cuando emito (en mi clase de actividad) la declaración:

View pv = getWindow().findViewById(android.R.id.progress); 

Devuelve null.

Devuelve null incluso cuando lo uso en conjunción con la clase ProgressBar :

 ProgressBar pv = (ProgressBar) getWindow().findViewById(android.R.id.progress); 

Y devuelve null incluso sin getWindow () :

 ProgressBar pv = (ProgressBar) findViewById(android.R.id.progress); 

¿Alguna idea de por qué?

Para asegurarse de que no estoy alucinando, seguí el consejo @ Geobits y creó un nuevo proyecto desde cero, que contiene el código exacto que aparece en la entrada del blog recomendado por @ArunGeorge a continuación:

 package com.droidworks; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.widget.ProgressBar; public class ProgressBarExampleActivity extends Activity { private ProgressBar mProgress; private MyThread mBgThread; private final Handler mHandler = new Handler(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mProgress = (ProgressBar) findViewById(android.R.id.progress); mBgThread = (MyThread) getLastNonConfigurationInstance(); if (mBgThread == null) { mBgThread = new MyThread(); mBgThread.start(); } mHandler.post(mThreadWatcher); } @Override public Object onRetainNonConfigurationInstance() { return mBgThread; } @Override protected void onPause() { mHandler.removeCallbacks(mThreadWatcher); super.onPause(); } private Runnable mThreadWatcher = new Runnable() { public void run() { int progress = mBgThread.getProgress(); mProgress.setProgress(progress); if (progress != 100) mHandler.postDelayed(this, 50); } }; static class MyThread extends Thread { private int _progress = 0; public void run() { for (; _progress < 100; _progress++) { try { Thread.sleep(100); } catch (InterruptedException ignored) { } } } private int getProgress() { return _progress; } } } 

Efectivamente, este código genera una NullPointerException :

 at com.droidworks.ProgressBarExampleActivity$1.run(ProgressBarExampleActivity.java:44) at android.os.Handler.handleCallback(Handler.java:587) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:123) at android.app.ActivityThread.main(ActivityThread.java:4627) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) at dalvik.system.NativeStart.main(Native Method) 

La R.id.progress incorporada de R.id.progress está diseñada para la clase ProgressBar . Si no tiene un objeto ProgressBar o un ProgressBar en su XML, entonces devolverá null.

EDITADO

Lo siento, debo haberlo contado mal. Eso es lo que obtengo por no pegar. De cualquier manera, ¿hay alguna razón por la que no use uno de los constructores de ProgressBar ? Aquí está la línea del último proyecto en el que usé un bar:

 mProgress = new ProgressBar(this, null, android.R.attr.progressBarStyleHorizontal); 

android.R.id.progress se utiliza junto con ProgressBar .

Consulta este enlace: http://foo.jasonhudgins.com/2010/03/simple-progressbar-tutorial.html

Su uso es así incorrecto.

Desde Eclipse, realice un proyecto limpio haciendo clic en 'Proyecto'> 'Limpiar …', haga clic en la casilla de verificación junto a su proyecto y haga clic en 'Aceptar'. Y trate de construir su proyecto de nuevo.

  • Crear cuadro de diálogo con barra de progreso en android
  • No FEATURE_INDETERMINATE_PROGRESS en ActionBarCompat para Android 2.3-
  • ProgressDialog en AsyncTask lanza una excepción
  • ¿Es posible mostrar la barra de progreso cuando se descarga a través de Retrofit 2 Asynchronous?
  • El diálogo de progreso de Android no se muestra en AsyncTask
  • Cómo mostrar la barra de progreso antes de reproducir el video
  • Agregar un retardo a Progress Dialog
  • Utilizar la barra de progreso circular como alarmdialog o progressdialog
  • No puedo ver el progreso de spinner en ProgressDialog en Lollipop
  • Reexcursión de exoplayer de Android cuando se realiza la búsqueda
  • Adición de un diálogo de progreso en una vista web
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.