Baru saja menyelesaikan apa yang @Kurtis Nusbaum dengan contoh praktis.
UPDATE: seperti yang dikatakan @ rudy-s, dengan pustaka dukungan android terbaru (api 18), saya melihat mereka sudah memiliki dukungan bawaan untuk actionbar (disebut kelas ActionBarCompat).
Saya membangun dua aplikasi sederhana untuk menunjukkan perbedaan visual antara ActionBarSherlock dan Kompatibilitas ActionBar. Lihat gambar perbandingan:
Sekarang tampilan ketika tombol menu ditekan:
Seperti yang Anda lihat, gambar hanya menegakkan apa yang dikatakan. Kompatibilitas Bilah Tindakan memberi Anda bilah tindakan hanya jika perangkat yang Anda jalankan adalah API level 3.0 atau lebih tinggi. Sementara Sherlock lebih umum.
Di bawah ini Anda dapat melihat sumber aplikasi.
File menu xml adalah sama:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_1"
android:orderInCategory="100"
android:showAsAction="always"
android:title="@string/action1"/>
<item
android:id="@+id/action_2"
android:orderInCategory="100"
android:showAsAction="ifRoom"
android:title="@string/action2"/>
<item
android:id="@+id/action_3"
android:orderInCategory="100"
android:showAsAction="ifRoom"
android:title="@string/action3"/>
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_settings"/>
</menu>
Aktivitas kompatibilitas:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Aktivitas Sherlock:
public class MainActivity extends SherlockActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
getSupportMenuInflater().inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
}
Konfigurasi tambahan diperlukan pada aplikasi sherlock:
<style name="AppBaseTheme" parent="Theme.Sherlock.Light.DarkActionBar">
UPDATE: seperti yang dikatakan @ rudy-s, dengan pustaka dukungan android terbaru (api 18), saya melihat mereka sudah memiliki dukungan bawaan untuk actionbar (disebut kelas ActionBarCompat).