2013-07-02 5 views
24

मैं इस स्क्रीन शॉट में के रूप में उदाहरण के दाहिने हाथ की ओर करने के लिए कार्यवाही बार में एक बटन जोड़ना चाहते हैं:एक्शनबार (एंड्रॉइड) में बटन कैसे जोड़ें?

a screenshot of an actionbar with no buttons. the title is 'Example'

मैं के रूप में onCreate विधि में ActionBar मिलती है:

ActionBar actionBar = getActionBar(); 
actionBar.setDisplayHomeAsUpEnabled(true); 

और बैक बटन (ऑनऑप्शन इटैम चयन विधि) नीचे:

public boolean onOptionsItemSelected(MenuItem item){ 
    Intent myIntent = new Intent(getApplicationContext(),MainActivity.class); 
    startActivityForResult(myIntent, 0); 
    return true; 
} 

मैं बटन कैसे जोड़ सकता हूं?

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item 
     android:id="@+id/action_cart" 
     android:icon="@drawable/cart" 
     android:orderInCategory="100" 
     android:showAsAction="always"/> 
</menu> 

उत्तर

72

आप res/menu, ओवरराइड onCreateOptionsMenu अंदर एक प्रविष्टि बना सकते हैं और बढ़ा देते हैं यह

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.yourentry, menu); 
    return true; 
} 

मेनू के लिए एक प्रवेश हो सकता है करने के लिए है।

इसके बजाय setcustomview() का उपयोग कर के, बस onCreateOptionsMenu इस तरह ओवरराइड: ActionBar में एक कार्रवाई चयनित है, तो

@Override  
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.mainmenu, menu); 
    return true; 
} 

, onOptionsItemSelected() विधि कहा जाता है। यह चयनित क्रिया पैरामीटर के रूप में प्राप्त करता है। इस जानकारी के आधार पर आप कोड तय कर सकते हैं कि उदाहरण के लिए क्या करना है:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case R.id.menuitem1: 
     Toast.makeText(this, "Menu Item 1 selected", Toast.LENGTH_SHORT).show(); 
     break; 
    case R.id.menuitem2: 
     Toast.makeText(this, "Menu item 2 selected", Toast.LENGTH_SHORT).show(); 
     break; 
    } 
    return true; 
} 
+0

Ok.That works.But मुझे नहीं orderInCategory और इसके मूल्य का उपयोग को समझने के रूप में 100 के – Ponting

+0

यह एक पूर्णांक है कि के "महत्व" के आदेश का प्रतिनिधित्व करते है: मेनू बढ़ा-चढ़ाकर के लिए नई विधि हस्ताक्षर यह है एक समूह के भीतर आइटम। आप इसे बदल सकते हैं। जब तक आपके पास मेनू में एक या दो तत्व होते हैं, इससे कोई फर्क नहीं पड़ता है। आप इसके बारे में पढ़ सकते हैं [यहां] (http://developer.android.com/guide/topics/resources/menu-resource.html) – Blackbelt

+0

धन्यवाद। अब एक और सवाल यह है कि मैं इस मेनू को किसी अन्य गतिविधि में जोड़ता हूं लेकिन अलग दिखाता हूं इसके बजाए बटन। तो मैं यह कैसे कर सकता हूं? – Ponting

14

एक गतिविधि अपने onCreateOptionsMenu() विधि में ActionBar भरता है:

0

@ ब्लैकबेल्ट के लिए धन्यवाद!

@Override 
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
     inflater.inflate(R.menu.my_meny, menu); 
} 
संबंधित मुद्दे