SetSupportProgressBarIndeterminateVisibility que genera java.lang.NullPointerException cuando se utiliza con Android 5.0 SDK (API 21)

Mi clase de actividad extiende android.support.v7.app.ActionBarActivity. Estoy solicitando característica de ventana y llamando a setSupportProgressBarIndeterminateVisibility () en el método onCreate () como sigue:

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); setContentView(R.layout.activity_main); setSupportProgressBarIndeterminateVisibility(true); } 

No puedo entender lo que está mal con mi código y por qué estoy recibiendo java.lang.NullPointerException planteado por el setSupportProgressBarIndeterminateVisibility() .

Mis dependencias gradle contiene:

 compile 'com.android.support:appcompat-v7:21.0.0' 

¿Alguien sabe cómo usar la barra de progreso indeterminada en la barra de acción support.v7 con la API 21?

Es necesario utilizar la barra de herramientas en lugar de ActionBar y agregar la barra de progreso en la barra de herramientas.

Aquí hay una solución fácil para insertar ProgressBar indeterminado en la barra de herramientas; Resulta que no es difícil en absoluto 🙂 Sólo tiene que poner su elemento ProgressBar xml dentro de su barra de herramientas como esto:

 <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/toolbar" android:layout_height="wrap_content" android:layout_width="match_parent" android:minHeight="?attr/actionBarSize" android:background="?attr/colorPrimary"> <ProgressBar android:id="@+id/progress_spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end" android:indeterminate="true" android:visibility="gone" /> </android.support.v7.widget.Toolbar> 

Y luego en su AppCompatActivity , simplemente recuperar la ProgressBar después de recuperar la barra de herramientas y establecer el ProgressBar a visible o invisible cuando lo necesite.

 protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.toolbar); mToolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(mToolbar); progressBar = (ProgressBar) findViewById(R.id.progress_spinner); //Make progress bar appear when you need it progressBar.setVisibility(View.VISIBLE); //Make progress bar disappear progressBar.setVisibility(View.INVISIBLE); } 

Espero que esto ayude 🙂

EDIT: reemplazó ActionBarActivity con AppCompatActivity según las últimas pautas de las bibliotecas de soporte de Android.

Por este comentario en el post de anuncio de Chris Banes (el autor de AppCompat) AppCompat v21:

De cualquier manera, las barras de progreso no son compatibles en la barra de herramientas.

Por qué:

Debido a que la barra de herramientas es un widget altamente enfocado. Si quieres un ProgressBar, añádelo a la barra de herramientas (es sólo un ViewGroup).

Me esperaba más información como la documentación oficial se actualiza aquí en breve.

  • Android SupportMapFragment Exception Error
  • No ActionBar en PreferenceActivity después de actualizar a Support Library v21
  • Reemplazar el soporte obsoleto android.support.v4.app.ActionBarDrawerToggle con soporte.v7 causa que el cajón no funcione en Jelly Bean
  • Espacio en blanco debajo de CoordinatorLayout en DrawerLayout
  • ¿Por qué android.util.LruCache. * No se encuentra al usar android-support-v4?
  • Android View Pager se equivoca
  • Switch vs. SwitchCompat
  • Error al utilizar elementos de la biblioteca de soporte de diseño de Android
  • ¿Es mejor utilizar FragmentActivity (o ActionBarActivity) o actividad del sistema cuando se orienta a la API mínima 14 (ICS)?
  • Diferencia entre MainThread, UiThread, WorkerThread, BinderThread en Android Annotation
  • Android, Logcat da error acerca de la clase SearchView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.