2011-09-06 19 views
9

अब मैं इसे स्क्रीन के नीचे एक मेनू जोड़ना चाहता हूं। मैंने बहुत कुछ लिखा लेकिन अभी भी यह नहीं किया कि यह कैसे किया जाए। मेरी मुख्य समस्या यह है कि मेरे पास मेरे मुख्य पृष्ठ पर एक XML फ़ाइल नहीं है। अपने रूप liks कि:Android में प्रोग्रामेटिक रूप से मेनू कैसे बनाएं?

public class start extends ListActivity { 
     static final String[] COUNTRIES = new String[] { 
     "NEWS1", "NEWS2","RADIO"}; 
Intent intent; 
public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, COUNTRIES)); 

     ListView lv = getListView(); 
     lv.setTextFilterEnabled(true); 

     lv.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
      int position, long id) { 
if (((TextView) view).getText().equals("NEWS1")){ 
intent = new Intent(start.this, NewsActivity.class); 

कैसे मैं एक मेनू एक कार्रवाई के साथ जोड़ सकते हैं। कृपया मुझे एक उदाहरण दें। धन्यवाद

+0

टैब मेनू या मेनू में के रूप में जब आप फोन पर मेनू बटन दबाएँ-? –

+0

फोन पर मेनू-बटन –

उत्तर

6

हां इसके ठीक अगर आप न अपने मुख्य गतिविधि में एक XML फ़ाइल है। आप अभी भी इस चरणों का पालन करके इसे करने के लिए मेनू में जोड़ सकते हैं ->

  1. एक Android एक्सएमएल फ़ाइल और प्रकार के रूप में चयन मेनू बनाने (यह रेस फ़ोल्डर मेनू उप फ़ोल्डर के अंतर्गत संगृहीत हो जाएंगे)।
  2. अब आप अपने मुख्य गतिविधि कोड में जोड़ने के इस दो तरीकों ->

    public boolean onCreateOptionsMenu(Menu menu){ 
        getMenuInflater().inflate(R.menu.yourmenuxmlfilename, menu); 
        return true; 
    } 
    public boolean onOptionsItemSelected(MenuItem item){ 
        switch(item.getItemId){ 
         case R.id.item1: 
          // what you want to do with first button 
          break; 
         case ..... 
          break; 
        } 
        return true; 
    } 
    
+0

इस विधि पर क्रिएटऑप्शनमेनू (मेनू मेनू) जहां से मुझे इसे कॉल करने की आवश्यकता है (इसे किस तरीके से कॉल करने के लिए?) ??? और मेनू में आइटम कैसे जोड़ें? –

+0

बस अपनी स्टार्ट क्लास में इस विधि को जोड़ें लेकिन याद रखें कि इस विधि को अपनी ऑनक्रेट() विधि में शामिल न करें, उन्हें अलग से जोड़ें। और इसमें आइटम जोड़ने के लिए मेनू एक्सएमएल फ़ाइल पर जाएं। यह बहुत ही सरल है। – Rocker

+0

धन्यवाद काम लेकिन आइटम काले हैं, मैं उन्हें काले रंग के फ्रेम पर काले रंग के फ़ॉन्ट पर नहीं देख सकता –

35

उपयोग इस कोड को मेनू जोड़ने के लिए गतिशील रूप से

private static final int NEW_MENU_ID=Menu.FIRST+1; 

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     super.onCreateOptionsMenu(menu); 

     menu.add(0, NEW_MENU_ID, 0, "New"); 

     return true; 
    } 
+0

'सार्वजनिक बूलियन ऑनपेरेयरऑप्शनमेनू (मेनू मेनू)' विधि का उपयोग क्या है? इसे हटाने से कोई फर्क नहीं पड़ता है। –

1

एक संदर्भ मेनू के लिए आप बस जोड़ने

  getListView().setOnCreateContextMenuListener(new OnCreateContextMenuListener() { 

       @Override 
       public void onCreateContextMenu(ContextMenu menu, View v, 
         ContextMenuInfo menuInfo) { 

        menu.setHeaderTitle("Options"); 
        menu.add("Option1"); 
        menu.add("Option2"); 
        menu.add("Option3"); 

       } 
      }); 

संदर्भ मेनू सिर्फ लंबे समय तक के लिए क्लिक करें पर दिखाई देता है सूची आइटम

-1

विकल्प मेनू के लिए

एक Android xml फ़ाइल है कि आप विकल्प मेनू

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

    new MenuInflater(this).inflate(R.layout.options, menu); 
    return super.onCreateOptionsMenu(menu); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    //and your action for menu item click goes here 
-1

कैसे तो संवाद खोलने के लिए में बढ़ बनाने? पूर्व। जब पर क्लिक करें, संवाद कहता है: XXX द्वारा बनाया गया, font16 और यहां जाएं: "http://www.xxx.xxx" हाइपरलिंक के रूप में?

इस कोड .with:

private static final int NEW_MENU_ID=Menu.FIRST+1; 


@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     super.onCreateOptionsMenu(menu); 

     menu.add(0, NEW_MENU_ID, 0, "ABOUT"); 


     return true; 
    } 
संबंधित मुद्दे