gpt4 book ai didi

android - 转换 Activity

转载 作者:行者123 更新时间:2023-11-29 19:21:58 25 4
gpt4 key购买 nike

我一直在研究我的问题的解决方案,但没有一个结果能解决我的问题。

我有五个 Java Activity 。每个 Activity 有五个按钮,四个给其他 Activity ,一个给自己。它基本上只是页面底部的底部栏。

我的问题是,假设我正在进行一项 Activity ,然后我再次单击该 Activity 的按钮,它会打开并加载一个全新的 Activity 。然后当我单击返回时,它会显示上一个 Activity 在我离开时打开。但是如果我按十次,我需要点击十次返回。另外,如果我在每个 Activity 之间切换两次,然后我想点击返回到主要退出,我需要点击返回十次而不是五次。

我希望它是这样的,当我点击一个按钮时,它会打开 Activity 。如果我再次按下按钮,如果我在那个 Activity 中,它什么都不做。如果我在 Activity 之间切换并且我抑制了我已经打开的 Activity ,我希望它从较低的位置带到堆栈的顶部,而不是添加。所以最多,我只想运行五个 Activity 。这是一个非常令人困惑的问题,因为我看到人们建议使用 Intent 标志,我不确定我是否将它们放在 list 中,这对我尝试没有任何作用。而且我看到有人建议使用 LaunchMode 单实例,它也什么都不做。

最佳答案

我真的认为 fragment 是这里最好的方法。是的,这有点棘手,但您可以在 fragment 中使用 fragment 。为了在不创建额外实例的情况下进行导航,我认为您可能正在寻找类似以下内容的内容:

 public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();

if(id == R.id.nav_home){

Fragment newFragment;
FragmentManager fragmentManager = getSupportFragmentManager();

// Look for fragment by tag
Fragment foundFragment = fragmentManager.findFragmentByTag(MAIN_FRAGMENT);

if(foundFragment != null) { //if fragment's already in the backstack
newFragment = foundFragment; //replace fragment with backstack fragment
}else{
newFragment = new MainFragment(); // use a new fragment instance
}

// Add new fragment instance to fragment manager
fragmentManager.beginTransaction()
.replace(R.id.fragment_container, newFragment, MAIN_FRAGMENT)
.addToBackStack(MAIN_FRAGMENT)
.commit();

}
// ...
}

关于android - 转换 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42237726/

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