2013-09-01 13 views
7

Aşağıdaki etkinliğimdeki eylem çubuğundaki çeviriciyi kullanmak istiyorum onCreateOptionsMenu: Bu yaklaşımı sağlamak için this tutorial kullanıyorum. Sorunum, etkinliğin öğle yemeği olduğu, onNavigationItemSelected yönteminin çalıştığı ve anahtar/durum çalışması üzerindeki kodun ve 0 konumu için belirlediğim etkinliğin açılmasından kaynaklanır. Aktivite öğle yemeği olduğunda anahtarı/davayı çalıştırmayı önlemek için ne yapmalıyım?Etkinlik başlatıldığında onNavigationItemSelected yangınları nasıl önlenir?

@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); 
} 

cevap

6

Sen onCreateOptionsMenu(Menu) içine aşağıdaki kodu gerekmez:

.... ....

kaldırın ve etkinliğin onCreate(Bundle) yönteminde yerleştirin.

Düzenleme:

küresel boolean değişkeni bildirin:

boolean initializing = true; 

Yeri Aşağıdaki kod onCreate(Bundle) iç:

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

teşekkür ederim ama sorun çözmedi. Aktivite öğle yemeği başladığında ilk durumda startActivity çalışır. –

+0

Hiçbir fikrin yok mu? –

+0

@MisaghAghakhani Yukarıdaki güncellenmiş kodu kullanmayı deneyebilir misiniz. – Vikram

İlgili konular