vida studio onstop getsupportactionbar example developers ciclo activity android android-actionbar android-version onstart

android - studio - ActionBar pre Honeycomb



onstart android example (7)

Estoy escribiendo una aplicación para Android (2.1> 3.1) y me gustaría utilizar la práctica familiar de usar el icono de la aplicación en aplicaciones Honeycomb para ir a la actividad hogareña, sin embargo, cuando ejecuto la actividad en dispositivos anteriores, no Honeycomb donde Activity.getActionBar (); El método aún no existe, la fuerza de la aplicación se cierra, ¿cómo puedo ejecutar este código específico si el dispositivo está ejecutando Honeycomb?

@Override protected void onStart() { super.onStart(); ActionBar actionBar = this.getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); }

Gracias por cualquier ayuda y que tengas un gran día.


Android pre-Honeycomb no tiene ActionBar, por lo que cualquier método relacionado con actionBar simplemente fallará. Debería echarle un vistazo al código de la aplicación Google IO , que utiliza una barra de acciones para Honeycomb y pre-Honeycomb.

En pocas palabras, no funcionará por sí mismo, tendrá que incluir su propio código ActionBar.


Como la barra de acciones no existe en pre honeycomb, tendrás que arreglártelas con otra cosa. Una sugerencia sería usar la biblioteca de barras de acción de johannilsson que se puede encontrar en github. Enlace directo: https://github.com/johannilsson/android-actionbar


Creo que el código es autoexplicativo

private static int sdkVersion; static { try { sdkVersion = Integer.parseInt(android.os.Build.VERSION.SDK); } catch (Exception ex) { } } /** Device support the froyo (Android 2.2) APIs */ public static boolean isAndroid22() { return sdkVersion >= 8; } /** Device support the Gingerbread (Android 2.3) APIs */ public static boolean isAndroid23() { return sdkVersion >= 9; } /** Device supports the Honeycomb (Android 3.0) APIs */ public static boolean isAndroid30() { return sdkVersion >= 11; }


He escrito una biblioteca para Android que ajustará automáticamente sus actividades anteriores a la 3.0 con una implementación personalizada del patrón de diseño de la barra de acciones. A continuación, puede llamar a getSupportActionBar() que proporcionará una interfaz común tanto para las implementaciones nativas como para las personalizadas, según la versión de Android en la que se ejecute la aplicación.

La biblioteca también le permite aplicar estilos personalizados a estas dos barras de acción a través de un único tema.

Puede encontrar más información y capturas de pantalla de aplicaciones de muestra en actionbarsherlock.com .

La biblioteca es 100% de código abierto y está disponible en github.com/JakeWharton/ActionBarSherlock .



A partir de la Revisión 18, la biblioteca de Soporte de Android contiene soporte de ActionBar para API Nivel 7. Esta es ahora la forma recomendada de admitir ActionBar para todas las versiones de Android desde 2.1 y es significativamente más fácil de usar que las bibliotecas de terceros u otros hacks.


De la guía de API para la barra de acción dice:

la aplicación de muestra Compatibilidad de barra de acciones proporciona una capa de API y un diseño de barra de acciones que permite que su aplicación use algunas de las API de ActionBar y también admita versiones anteriores de Android al reemplazar la barra de título tradicional con una barra de acción personalizada.

Puede obtener esto instalando las muestras de Android 4.1 (API 16).

Luego en Eclipse:

  1. Vaya a Archivo> Nuevo> Proyecto
  2. Android> Proyecto de ejemplo de Android
  3. Comprueba Android 4.1
  4. Seleccione ActionBarCompat