2011-06-22 14 views
42

यहाँ मैं विकल्प मेनू बनाने के लिए कोशिश की, लेकिन मेनू स्क्रीन पर दिखाई नहीं दे रहा है, तो मेरे गाइड कृपया मैं कहाँ गलती कर रहा हूँ ...एंड्रॉयड, विकल्प मेनू बनाने के लिए कैसे

MenuTest.java

public class MenuTest extends Activity { 
    @Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater=getMenuInflater(); 
    inflater.inflate(R.menu.more_tab_menu, menu); 
    return super.onCreateOptionsMenu(menu); 

} 
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch(item.getItemId()) 
    { 
    case R.id.feeds: 
     break; 
    case R.id.friends: 
     break; 
    case R.id.about: 
     break; 
    } 
    return true; 
} 
} 

और मेरे एक्सएमएल फ़ाइल more_tab_menu.xml

<?xml version="1.0" encoding="utf-8"?> 
<menu 
xmlns:android="http://schemas.android.com/apk/res/android"> 
<item 
    android:id="@+id/feeds" 
    android:title="Feeds"/> 
<item 
    android:id="@+id/friends" 
    android:title="Friends"/> 
<item 
    android:id="@+id/about" 
    android:title="About"/> 
</menu> 

है कृपया मुझे मार्गदर्शन,

+0

क्या यह पूर्ण गतिविधि कोड है, तो आप खाली Activity में काम करते हैं। ऑनक्रेट विधि कहां है? – Egor

+0

मैंने ऑनक्रेट विधि भी लिखी, लेकिन उसके बाद मुझे स्क्रीन में मेनू नहीं मिला। –

+0

क्या आपने एम्यूलेटर से 'मेनू बटन' दबाया है? – Android

उत्तर

38
public class MenuTest extends Activity { 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.more_tab_menu, menu); 

     // return true so that the menu pop up is opened 
     return true; 
    } 
} 

और भूल नहीं है एम्युलेटर पर मेनू बटन या आइकन या डिवाइस

10

अपनेबदलें true वापस करने के लिएविधि। the docs उद्धरण करने के लिए:

आपको प्रदर्शित होने के लिए मेनू को सही वापस करना होगा; यदि आप झूठी वापसी करते हैं तो यह नहीं दिखाया जाएगा।

26

प्रेस करने कृपया देखें: ==

private int group1Id = 1; 

int homeId = Menu.FIRST; 
int profileId = Menu.FIRST +1; 
int searchId = Menu.FIRST +2; 
int dealsId = Menu.FIRST +3; 
int helpId = Menu.FIRST +4; 
int contactusId = Menu.FIRST +5; 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    menu.add(group1Id, homeId, homeId, "").setIcon(R.drawable.home_menu); 
    menu.add(group1Id, profileId, profileId, "").setIcon(R.drawable.profile_menu); 
    menu.add(group1Id, searchId, searchId, "").setIcon(R.drawable.search_menu); 
    menu.add(group1Id, dealsId, dealsId, "").setIcon(R.drawable.deals_menu); 
    menu.add(group1Id, helpId, helpId, "").setIcon(R.drawable.help_menu); 
    menu.add(group1Id, contactusId, contactusId, "").setIcon(R.drawable.contactus_menu); 

    return super.onCreateOptionsMenu(menu); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case 1: 
     // write your code here 
     Toast msg = Toast.makeText(MainHomeScreen.this, "Menu 1", Toast.LENGTH_LONG); 
     msg.show(); 
     return true; 

    case 2: 
     // write your code here 
     return true; 

    case 3: 
     // write your code here 
     return true; 

    case 4: 
     // write your code here 
     return true; 

    case 5: 
     // write your code here 
     return true; 

    case 6: 
     // write your code here 
     return true; 

    default: 
     return super.onOptionsItemSelected(item); 
    } 
} 
+2

मेनू आइकन नहीं दिखाते हैं:/ – Zame

2

बदलें वापसी super.onCreateOptionsMenu (मेनू) ;के साथ सच वापसी; अपने onCreateOptionsMenu विधि में यह मदद मिलेगी

और आपका अपनी गतिविधि में onCreate विधि होनी चाहिए

7
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    new MenuInflater(this).inflate(R.menu.folderview_options, menu); 
    return (super.onCreateOptionsMenu(menu)); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

    if (item.getItemId() == R.id.locationListRefreshLocations) { 
     Cursor temp = helper.getEmployee(active_employeeId); 
     String[] matches = new String[1]; 
     if (temp.moveToFirst()) { 
      matches[0] = helper.getEmployerID(temp); 
     } 
     temp.close();    
     startRosterReceiveBackgroundTask(matches); 
    } else if (item.getItemId()==R.id.locationListPrefs) { 
     startActivity(new Intent(this, PreferencesUnlockScreen.class)); 
     return true; 
    }   
    return super.onOptionsItemSelected(item); 
} 
+0

विकल्प कोड के साथ अदृश्य था। क्रिएटऑप्शनमेनू (मेनू मेनू) के अंदर, मैंने वापसी को बदल दिया (super.onCreateOptionsMenu (मेनू)) इसे वापस करने के लिए जो इसे दृश्यमान बनाता है। – Dexter

0

पिछले जवाब एंड्रॉयड में इस्तेमाल पारंपरिक मेनू कवर किया है। उनकी एक और विकल्प आप है देख रहे हैं एक वैकल्पिक

https://github.com/AnshulBansal/Android-Pulley-Menu

चरखी मेनू के लिए पारंपरिक मेनू जो उपयोगकर्ता intuitively एक गतिविधि के लिए किसी भी विकल्प का चयन करने की अनुमति देता है के लिए एक वैकल्पिक आप उपयोग कर सकते है। मेनू को स्क्रीन को नीचे खींचकर प्रकट किया गया है और उस इशारे में उपयोगकर्ता भी किसी भी विकल्प का चयन कर सकता है।

0

एंड्रॉइड यूआई प्रोग्रामिंग थोड़ा मुश्किल है। विकल्प मेनू को सक्षम करने के लिए, आपके द्वारा लिखे गए कोड के अलावा, हमें आपके ओवरडिन विधि OnCreate() में setHasOptionsMenu (true) को भी कॉल करने की आवश्यकता है। आशा है कि यह आपकी मदद करेगा।

2
import android.app.Activity; 
import android.os.Bundle; 
import android.view.*; 
import android.widget.*; 

public class AndroidWalkthroughApp2 extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // show menu when menu button is pressed 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.options_menu, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // display a message when a button was pressed 
     String message = ""; 
     if (item.getItemId() == R.id.option1) { 
      message = "You selected option 1!"; 
     } 
     else if (item.getItemId() == R.id.option2) { 
      message = "You selected option 2!"; 
     } 
     else { 
      message = "Why would you select that!?"; 
     } 

     // show message via toast 
     Toast toast = Toast.makeText(this, message, Toast.LENGTH_LONG); 
     toast.show(); 

     return true; 
    } 
} 
0

आपका डिवाइस Android v.4.1.2 चल रहा है या उससे पहले,
मेनू कार्रवाई पट्टी में प्रदर्शित नहीं किया जाता है।
लेकिन इसे मेनू- (हार्डवेयर) -बटन के माध्यम से एक्सेस किया जा सकता है।

0

शुभ दिन मैं जांच की गई और अगर आप खाली चुनें Activity आप मेनू कार्यों में निर्माण नहीं है बिल्ड के लिए में आप बुनियादी Activity का चयन करना होगा इस तरह आप Activity चलेंगे onCreateOptionsMenu

या अगर आप से में styles.xml में

संबंधित मुद्दे