gpt4 book ai didi

android - 在启动时调用 ActionBar 中的 onNavigationItemSelected 如何避免它?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:02:59 26 4
gpt4 key购买 nike

我将 ActionBar 与下拉菜单一起使用,onNavigationItemSelected() 在 Activity 创建后立即被调用,因此第一个项目被调用。我的下拉菜单的第一项是主页,与使用 android.R.id.home 按下应用程序图标的操作相同,因此当应用程序启动时它会调用自身。为了避免这种情况发生,我有以下代码:

if(this.getClass() != FrecView.class){  //if i am not currently on the Activity
Intent frec = new Intent(this, FrecView.class);
frec.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(frec);
}

但是我的所有 Activity 都有 ActionBar,所以每次开始每个 Activity 时它都会永远调用自己,所以我必须为每个 Activity 放置该代码。怎么了?我怎样才能防止这种情况发生?

最佳答案

正如 Mark 所说,它不是设计成菜单的。

但是,这里有一个忽略第一个调用的快速而肮脏的方法:

声明这个类字段:

//mNaviFirstHit should be initialized to true
private boolean mNaviFirstHit = true;

并且在 onNavigationItemSelected 中:

@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
if (mNaviFirstHit) {
mNaviFirstHit = false;
return true;
}
// DO WHAT YOU WOULD NORMALLY DO
}

关于android - 在启动时调用 ActionBar 中的 onNavigationItemSelected 如何避免它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10167162/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com