2013-09-01 56 views
7

我想在我的活動下面的活動欄中使用微調是onCreateOptionsMenu:我使用this tutorial來實現這種方法。我的問題是,當活動是午餐,onNavigationItemSelected方法觸發和開關/大小寫運行和我爲位置0設置的活動打開。當活動是午餐時,我應該怎麼做以防止運行開關/箱子?如何防止onNavigationItem在活動啓動時選擇觸發?

@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

@MisaghAghakhani你可以嘗試使用上面更新的代碼。 – Vikram

相關問題