2013-09-01 8 views
7

मैं नीचे अपनी गतिविधि में एक्शन बार में स्पिनर का उपयोग करना चाहता हूं, इस दृष्टिकोण को प्राप्त करने के लिए मैं this tutorial का उपयोग करता हूं। मेरी समस्या यह है कि जब गतिविधि दोपहर का भोजन होता है, तो ऑनविगेशनइटम चुनिंदा विधि आग और स्विच/केस रन पर कोड और स्थिति 0 के लिए सेट की गई गतिविधि खुलती है। जब गतिविधि दोपहर का भोजन होता है तो स्विच/केस चलाने के लिए मुझे क्या करना चाहिए?गतिविधि को लॉन्च होने पर नेविगेशन इटैम चुनिंदा आग पर कैसे रोकें?

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

    getSupportMenuInflater().inflate(R.menu.main, menu); 

    SpinnerAdapter mSpinnerAdapter; 
    if(Build.VERSION.SDK_INT <= 10) 
    { 
     mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.spinner_data,android.R.layout.simple_spinner_item); 
    } 
    else 
    { 
     mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.spinner_data,android.R.layout.simple_spinner_dropdown_item); 
    } 
    ActionBar.OnNavigationListener mOnNavigationListener = new ActionBar.OnNavigationListener() 
    { 
     @Override 
     public boolean onNavigationItemSelected(int position, long itemId) 
     { 
      switch (position) 
      { 
       case 0: 
        Intent searchIntent = new Intent(ActivitySearchBusiness.this, ActivityFindBusinessCity.class); 
        startActivity(searchIntent); 
        break; 
       case 2: 
        Intent dealsIntent = new Intent(ActivitySearchBusiness.this, ActivityDeals.class); 
        startActivity(dealsIntent); 
        break; 
       case 3: 
        Intent eventsIntent = new Intent(ActivitySearchBusiness.this, ActivityEvents.class); 
        startActivity(eventsIntent); 
        break; 
      } 

      return true; 
     } 
    }; 
    actionBar.setListNavigationCallbacks(mSpinnerAdapter, 

    return super.onCreateOptionsMenu(menu); 
} 

उत्तर

6

आप onCreateOptionsMenu(Menu) अंदर निम्नलिखित कोड की आवश्यकता नहीं है:

.... ....

यह निकालें और अपनी गतिविधि के onCreate(Bundle) विधि में रखें।

संपादित करें:

एक वैश्विक boolean चर घोषित करें:

boolean initializing = true; 

प्लेस निम्नलिखित कोड onCreate(Bundle) अंदर:

SpinnerAdapter mSpinnerAdapter; 
if(Build.VERSION.SDK_INT <= 10) 
{ 
    mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.spinner_data,android.R.layout.simple_spinner_item); 
} 
else 
{ 
    mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.spinner_data,android.R.layout.simple_spinner_dropdown_item); 
} 
ActionBar.OnNavigationListener mOnNavigationListener = new ActionBar.OnNavigationListener() 
{ 
    @Override 
    public boolean onNavigationItemSelected(int position, long itemId) 
    { 

     if (initializing) { 
      initializing = false; 
     } else {    
      switch (position) 
      { 
       case 0: 
        Intent searchIntent = new Intent(ActivitySearchBusiness.this, ActivityFindBusinessCity.class); 
        startActivity(searchIntent); 
        break; 
       case 2: 
        Intent dealsIntent = new Intent(ActivitySearchBusiness.this, ActivityDeals.class); 
        startActivity(dealsIntent); 
        break; 
       case 3: 
        Intent eventsIntent = new Intent(ActivitySearchBusiness.this, ActivityEvents.class); 
        startActivity(eventsIntent); 
        break; 
      } 
     } 

     return true; 
    } 
}; 
//actionBar.setListNavigationCallbacks(mSpinnerAdapter, mOnNavigationListener); 
getActionBar().setListNavigationCallbacks(mSpinnerAdapter, mOnNavigationListener); 
+0

धन्यवाद, लेकिन समस्या का समाधान नहीं किया। जब गतिविधि शुरू होती है तो पहले मामले में प्रारंभिकता चलती है। –

+0

क्या आपको कोई विचार नहीं है? –

+0

@ मिसाघ अघखानी क्या आप ऊपर दिए गए अद्यतन कोड का उपयोग करने का प्रयास कर सकते हैं। – Vikram

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