android - 使搜索菜单和导航菜单 onOptionsItemSelected 一起工作?

标签 android

我在主 Activity 中为搜索菜单按钮设置了这个 onOptionsItemSelected:

public class MainActivity extends BaseActivity {

...

   public boolean onOptionsItemSelected(MenuItem item)
    {
        switch (item.getItemId())
        {
            case R.id.action_search:
                search();
                return true;
        }
        return true;
    }

这在 baseactivity 中:

public class BaseActivity extends AppCompatActivity implements View.OnClickListener{

...

@Override
public boolean onOptionsItemSelected(MenuItem item){
    //int id = item.getItemId();
    if(mToggle.onOptionsItemSelected(item)){
        return true;
    }
    nDrawerLayout.closeDrawers(); //close menu after click
    return super.onOptionsItemSelected(item);
}

但是对于这两个我不能让它们都不起作用。 (单击两者均无效)

有什么解决办法吗?

最佳答案

如果不消耗点击,则必须在主 Activity 中调用 super.onOptionsItemSelected(item)。然后在BaseActivity中会调用onOptionsItemSelected。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.action_search:
            search();
            return true;
    }
    return super.onOptionItemSelected(item);
}

关于android - 使搜索菜单和导航菜单 onOptionsItemSelected 一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54927689/

相关文章:

android - 修改从 Room 获取的 LiveData 项目

java - R.java奇怪的错误

android - 检查 Firebase 邀请是否引导至 Play 商店

android - Jackson + SugarOrm id 错误

android - Crashlytics 分发失败主体太长

java - 如何回到android中的主要 Activity ?

android - 将 JSON 字符串解析为 SQLite 表的最快方法是什么?

android - android 中的可绘制文本与左对齐

android - 语音识别语言模型

java - 获取 Android 25 英里半径范围内的邮政编码