2012-04-14 18 views
11

Estoy tratando de usar ActionBarCompat en mi propio proyecto. Ya abrí el proyecto de muestra (http://developer.android.com/resources/samples/ActionBarCompat/index.html), pero no sé cómo implementarlo por mi cuenta.ActionBarCompat - cómo usarlo

No encuentro ningún tipo de tutorial. ¿Debo hacer este proyecto como una biblioteca? ¿Puede alguien darme algunas indicaciones, por favor?

+1

fui por ActionBarSherlock ... –

+0

Parece que en algún momento del año pasado, Google eliminó la versión en línea de su muestra de ActionBarCompat (y cualquier otra muestra). ¿Hay algún lugar para enlazar para un enlace actualizado? –

Respuesta

22

En cuanto a la implementación, simplemente adhiérase al código de muestra proporcionado en la clase MainActivity.java. Puede encontrarlo en here o en <your local android-sdks folder>/samples/android-15/ActionBarCompat/src/com/example/android/actionbarcompat/MainActivity.java. En general, todo lo que tiene que hacer es la siguiente:

  1. Código un recurso de menú en el que declara los artículos de la barra de acción (Ver http://developer.android.com/resources/samples/ActionBarCompat/res/menu/main.html)
  2. Código una actividad que se extiende ActionBarActivity
  3. Anulación onCreateOptionsMenu() por lo que infla el menú que codificó en el paso # 1
  4. Omitir onOptionsItemSelected() para que pueda manejar el evento cuando el usuario toque cualquiera de los elementos de la barra de acciones que definió en el paso # 1.

Creo que tiene sentido crear un proyecto de biblioteca de Android con el código ActionBarCompat; entonces puedes simplemente referenciarlo desde tu proyecto Android personalizado. Recuerde que está licenciado bajo la licencia de Apache , versión 2.0.

+0

¡Muy bueno para hacer una lista! Gracias, seguí su lista, establecí ActionBarCompat como un proyecto de biblioteca como usted lo recomendó. Todo funcionó, pero el logotipo de la aplicación. Siempre fue el logotipo de la aplicación ActionBarCompat hasta que descubrí que está (algo así) codificado en ActionBarCompat llamado ic_home (.png) Por lo tanto, agregaría un punto adicional a la lista: 5. Crear un ícono en las carpetas "dibujables" de su proyecto con el nombre ic-home (.png)
Addi

+0

Andres ¿cómo puedo hacer esto en una biblioteca?También el enlace sobre ahora está roto. ¿Alguna sugerencia? – StuStirling

+0

@ DiscoS2 Si quiere hacer esto en una biblioteca, solo tiene que designarlo como una biblioteca en el IDE. En Eclipse, vaya a la configuración del proyecto> Android, desplácese hacia abajo y marque 'biblioteca'. En IntelliJ, usted designa el módulo como una biblioteca. –

9

Esta respuesta describe cómo usar la nueva biblioteca ActionBarCompat (julio de 2013).

En Android Studio, abierta build.gradle y añadir lo siguiente:

dependencies { 
    compile 'com.android.support:appcompat-v7:18.0.+' 
} 

En Eclipse, crear un library project basado en el código de sdk\extras\android\support\v7\appcompat y añadirlo a su proyecto.

Las actividades deben ampliarse ActionBarActivity.

import android.support.v4.view.MenuItemCompat; 
import android.support.v7.app.ActionBarActivity; 
import android.support.v7.widget.SearchView; 
import android.support.v7.app.ActionBar; 
import android.view.Menu; 
import android.view.MenuItem; 

public class MainActivity extends ActionBarActivity { 

    ActionBar ab; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     ab = getSupportActionBar(); 
     ab.setTitle("Test"); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.main, menu); 

     MenuItem searchItem = menu.findItem(R.id.action_search); 
     SearchView searchView = 
        (SearchView) MenuItemCompat.getActionView(searchItem); 

     return super.onCreateOptionsMenu(menu); 
    } 
} 

temas tienen que ser (o ampliar) uno de los Theme.AppCompat temas, por ejemplo:

<activity android:theme="@style/Theme.AppCompat.Light" ... /> 

Fuente: How to add ActionBarCompat to your project, entrada de blog de Gabriele Mariotti

Cuestiones relacionadas