बस एक पुरातन उदाहरण के साथ क्या @Kurtis Nusbaum पूरा कर रहा है।
अद्यतन: जैसा कि @ rudy-s ने कहा, नवीनतम एंड्रॉइड सपोर्ट लाइब्रेरी (एपीआई 18) के साथ, मैंने देखा कि उनके पास एक्शनबार के लिए पहले से ही अंतर्निहित समर्थन है (एक्शनबार्कट क्लास कहा जाता है)।
मैंने ActionBarSherlock और ActionBar संगतता के बीच दृश्य अंतर दिखाने के लिए दो सरल अनुप्रयोगों का निर्माण किया। तुलनात्मक चित्र देखें:
अब मेनू बटन दबाने पर उपस्थिति:
जैसा कि आप देख सकते हैं, छवियां केवल वही लागू करती हैं जो कहा गया था। एक्शन बार कम्पेटिबिलिटी आपको एक्शन बार केवल तब देती है जब आप जिस डिवाइस पर चल रहे हैं वह एपीआई स्तर 3.0 या उससे ऊपर है। जबकि शरलॉक अधिक सामान्य है।
नीचे आप एप्लिकेशन स्रोत देख सकते हैं।
मेनू xml फ़ाइल समान है:
<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>
संगतता की गतिविधि:
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;
}
}
शर्लक की गतिविधि:
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);
}
}
शर्लक एप्लिकेशन पर एक अतिरिक्त कॉन्फ़िगरेशन आवश्यक था:
<style name="AppBaseTheme" parent="Theme.Sherlock.Light.DarkActionBar">
अद्यतन: जैसा कि @ rudy-s ने कहा, नवीनतम एंड्रॉइड सपोर्ट लाइब्रेरी (एपीआई 18) के साथ, मैंने देखा कि उनके पास एक्शनबार के लिए पहले से ही अंतर्निहित समर्थन है (एक्शनबार्कट क्लास कहा जाता है)।