2015-06-14 53 views
0

我正在使用從AppCompatActivity擴展的ActionBar。如何檢查,如果此時打開ActionBar的下拉菜單。如何檢查ActionBar的下拉菜單是否有效

我試過這個方法。但它不火,如果我打開下拉菜單:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    Intent intent = new Intent(); 

    Log.i("ActionBar", "ActionBar dropdown is open at this moment"); 

    switch (item.getItemId()) { 
     case R.id.preferences: 
      intent.setClass(StartupActivity.this, PreferencesActivity.class); 
      startActivityForResult(intent, 0); 
      return true; 
     case R.id.info: 
      intent.setClass(StartupActivity.this, InformationActivity.class); 
      startActivityForResult(intent, 0); 
      return true; 
     case R.id.contact: 
      intent.setClass(StartupActivity.this, ContactActivity.class); 
      startActivityForResult(intent, 0); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

它只火災,如果我點擊下拉菜單中的項目。但是我想檢查一下,如果用戶點擊三點菜單。

enter image description here

回答

0

請嘗試以下方法:

@Override 
public boolean onMenuOpened(int featureId, Menu menu) { 
    // menu is open 
    return super.onMenuOpened(featureId, menu); 
} 
+0

對不起,但如果點擊三個點不會觸發 – Stampy

0

我試過這種方法,它的工作原理:

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 
    // menu open 
    return super.onPrepareOptionsMenu(menu); 
} 

偶數初始化菜單時,而不是隻有當你點擊,但總比沒有好。