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 № 1Sí, 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/