我正在使用从AppCompatActivity扩展的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);
}
}
如果我点击下拉菜单中的某个项目,它只会触发。但我想检查,如果用户点击三点菜单。
答案 0 :(得分:0)
尝试以下方法:
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
// menu is open
return super.onMenuOpened(featureId, menu);
}
答案 1 :(得分:0)
我尝试过这种方法,它有效:
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// menu open
return super.onPrepareOptionsMenu(menu);
}
即使在初始化菜单时,不仅在点击时,而且总比没有好。