2012-04-14 6 views
11

Sto provando ad usare ActionBarCompat sul mio progetto. Ho già aperto il progetto di esempio (http://developer.android.com/resources/samples/ActionBarCompat/index.html), ma non so come implementarlo da solo.ActionBarCompat - come usarlo

Non riesco a trovare alcun tutorial di qualche tipo. Devo fare questo progetto come una biblioteca? Qualcuno può darmi delle indicazioni, per favore.

+1

Sono andato per ActionBarSherlock ... –

+0

Sembra che nel corso dell'ultimo anno Google abbia rimosso la versione online del proprio campione ActionBarCompat (e ogni altro campione). C'è un posto dove collegarsi per un link aggiornato? –

risposta

22

Per quanto riguarda l'implementazione, è sufficiente attenersi al codice di esempio fornito sotto la classe MainActivity.java. Lo puoi trovare here o sotto <your local android-sdks folder>/samples/android-15/ActionBarCompat/src/com/example/android/actionbarcompat/MainActivity.java. In generale, tutto quello che dovete fare è la seguente:

  1. codice una risorsa menu in cui si dichiara gli elementi per la barra di azione (vedi http://developer.android.com/resources/samples/ActionBarCompat/res/menu/main.html)
  2. codice di un'attività che si estende ActionBarActivity
  3. Override onCreateOptionsMenu() così che gonfia il menu codificato al passaggio n.
  4. Ignora onOptionsItemSelected() in modo da gestire l'evento quando l'utente tocca una qualsiasi delle voci di ActionBar definite nel passaggio 1.

Penso che abbia senso costruire un progetto di libreria Android dal codice ActionBarCompat; quindi puoi semplicemente fare riferimento al tuo progetto Android personalizzato. Ricorda che è concesso in licenza con la licenza Apache , Versione 2.0.

+0

Ottimo al punto da fare! Grazie ho seguito il tuo elenco, imposta ActionBarCompat come progetto di libreria come consigliato. Tutto ha funzionato, ma il logo dell'app. È sempre stato il logo dell'app ActionBarCompat fino a quando ho scoperto che è (un po ') codificato in ActionBarCompat chiamato ic_home (.png) Quindi aggiungerei un punto in più alla lista: 5. Creare un'icona nelle cartelle "disegnabili" del tuo progetto con il nome ic-home (.png)
Addi

+0

Andres come posso trasformarlo in una libreria?Anche il link su è ora rotto. Qualche indicazione? – StuStirling

+0

@ DiscoS2 Se vuoi farlo in una libreria, devi solo designarlo come una libreria nell'IDE. In Eclipse vai alle impostazioni del progetto> Android, scorri verso il basso e controlla "library". In IntelliJ, il modulo viene designato come libreria. –

9

Questa risposta descrive come utilizzare la nuova libreria ActionBarCompat (luglio 2013).

In Android Studio, aperto build.gradle e aggiungere questo:

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

In Eclipse, creare un library project in base al codice di sdk\extras\android\support\v7\appcompat e aggiungerlo al progetto.

Le attività devono estendere 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); 
    } 
} 

temi devono essere (o estendere) una delle Theme.AppCompat temi, ad esempio:

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

Fonte: How to add ActionBarCompat to your project, post sul blog di Gabriele Mariotti