/ / Aplicaciones con Action Bar pre-Android 3.0 - Android, Android-actionbar, actionbarsherlock

Aplicaciones con la barra de acción pre-Android 3.0 - Android, android-actionbar, actionbarsherlock

Utilizo esto en una aplicación que apunto a Android 3.0+ solamente. Me gustaría tener más gente, pero la barra de acción no es compatible con versiones anteriores. No quiero usar una biblioteca de terceros como ActionBarSherlock. Fui por ese camino y fue más doloroso de lo que valía.

Tengo un código como este:

final ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayHomeAsUpEnabled(true);

Es posible envolver esto con un if - else SDK cheque? Fuera de la barra de acción, el 99% de otro código es compatible con la versión anterior a la 3.0 (bueno, estoy usando fragmentos pero estoy usando la biblioteca de soporte).

Respuestas

4 para la respuesta № 1

Sí, algo como esto:

      @TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void setupActionBar() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayHomeAsUpEnabled(true);
}
}

Asegúrate de tener tu variable de barra de acción global


2 para la respuesta № 2

Puedes hacer algo así:

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
final ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayHomeAsUpEnabled(true);
}

0 para la respuesta № 3

Sí. Los uso bastante extensivamente. Sin embargo, mira esta de Google I / O 2012, ya que proporciona una buena visión de prácticas aún mejores.

Puede obtener la versión como un int usando Build.VERSION.SDK_INT. Es fácil de configurar esto:

final int version = Build.VERSION.SDK_INT;
ActionBar actionBar;

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void ABsetup() {
if (version >= Build.VERSION_CODES.HONEYCOMB) {
actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayHomeAsUpEnabled(true);          }
}

-1 para la respuesta № 4

Otra opción es usar ActionBarSherlock, que hace que la barra de acción sea compatible con Android 2.1 (SDK 7).

Enlace aquí: http://actionbarsherlock.com/