Android getActionBar vs getSupportActionBar?
Aquí está mi código:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){ //android.support.v7.app.ActionBar actionBar = getSupportActionBar(); //actionBar.setTitle("Android"); ActionBar actionBar = getActionBar(); actionBar.setTitle("Droid"); }
Mientras uso el getSupportActionBar () mi aplicación se ejecuta muy bien con kitkat y otras nuevas versiones, pero utilizando los resultados getActionBar en un error.
- Agregue progreso horizontal indeterminado a la barra de acción
- ¿Cómo expandir la lista de navegación en la barra de acción?
- Android: Icono de búsqueda que no se muestra en la barra de acciones
- Ocultar sólo la barra de acciones en las pestañas de la barra de acción de desplazamiento no
- Cambiar el color de fondo de ActionBar en el código de la lista de navegación
Aquí está el error:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.hide()' on a null object reference at com.github.domain.geoquiz.QuizActivity.onCreate(QuizActivity.java:57) at android.app.Activity.performCreate(Activity.java:5933) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) at android.app.ActivityThread.access$800(ActivityThread.java:144) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372
¿Por qué? De las documentaciones de Android:
Precaución: Asegúrese de importar la clase ActionBar (y las API relacionadas) del paquete apropiado:
Si soporta niveles de API inferiores a 11: import android.support.v7.app.ActionBar
Si sólo admite API de nivel 11 y superior: import android.app.ActionBar
¿Por qué esta aplicación se está bloqueando?
- ClassCastException: android.support.v7.widget.ShareActionProvider
- Navegación Android para una Actividad con varios padres
- Cómo cambiar el color de fondo de la barra de acción sin aumentar min sdk?
- Control dinámico de elementos de acción / menú en ActionBar
- ¿Cuál es el equivalente de ActionBar en versiones anteriores de sdk?
- La barra de acción de Android nunca se divide en la pantalla de 5.1 "
- ¿Cómo puedo mantener la barra de acción / título pero ocultar la barra de notificación
- Aplicación para Tablet Android - ActionBar
Si utiliza AppCompat siempre tiene que llamar a getSupportActionBar()
sin importar la versión de Android que esté ejecutando su aplicación.
¿Qué versiones de Android segmenta?
Le aconsejo que utilice la nueva barra de herramientas en lugar de ActionBar, porque es mucho más flexible de usar.
Si está extendiendo AppCompatActivity
entonces está proporcionando soporte para versiones anteriores de Android y para eso tiene que usar getSupportActionBar()
.
Si está importando android.app.ActionBar
entonces usted tiene que usar getActionBar()
y si está importando android.support.v7.app.ActionBar
entonces usted tiene que usar getSupportActionBar()
.
Nota: Al utilizar android.support.v7.app.ActionBar
, puede proporcionar soporte retroactivo para versiones anteriores de Android.
- Detectar el fin del fling en ScrollView
- Cómo agregar barra de acción personalizada con el cajón de navegación?