【问题标题】:How to check if drop down menu of ActionBar is active如何检查ActionBar的下拉菜单是否处于活动状态
【发布时间】:2015-08-30 05:02:28
【问题描述】:

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

只有当我点击下拉菜单中的一个项目时才会触发。但我想检查一下,如果用户点击了三点菜单。

【问题讨论】:

    标签: java android android-actionbar settings preferences


    【解决方案1】:

    试试下面的方法:

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

    【讨论】:

    • 对不起,如果我点击三个点,它不会触发
    【解决方案2】:

    这个方法我试过了,很有效:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-11
      • 2019-12-10
      • 2014-08-25
      • 1970-01-01
      相关资源
      最近更新 更多