如何检查ActionBar的下拉菜单是否处于活动状态

时间:2015-06-14 17:53:40

标签: java android android-actionbar settings preferences

我正在使用从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);
    }
}

如果我点击下拉菜单中的某个项目,它只会触发。但我想检查,如果用户点击三点菜单。

enter image description here

2 个答案:

答案 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);
}

即使在初始化菜单时,不仅在点击时,而且总比没有好。