当前位置: 首页 > 知识库问答 >
问题:

FragmentActivities之间正确的回导航

夏昊
2023-03-14

我有两项活动:

  1. MainActivity,它扩展了FragmentActivity并具有
  2. ViewActivity,它只是一个活动,有MainActivity作为父级。

有一个从MainActivity的片段到ViewActivity的导航。问题是,当我从ViewActivity(按下back按钮)向后导航到MainActivity时,我得到了活动的第一个片段,丢失了所有的backstack片段。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //Listen for changes in the back stack
    getSupportFragmentManager().addOnBackStackChangedListener(this);
    //Handle when activity is recreated like on orientation Change
    shouldDisplayHomeUp();
    setContentView(R.layout.activity_main);
    if (savedInstanceState == null) {
        MainFragment mainFragment = new MainFragment();
        getSupportFragmentManager().beginTransaction()
            .add(R.id.a_main_container, mainFragment)
            .commit();
    }
}

但是有可能在ActionBar中用UpButton做同样的事情吗?(只要求将来使用)

共有1个答案

漆雕彦
2023-03-14

似乎您在MainActivity的onCreate中实例化了片段1,而没有检查savedInstanceState==null。因此,每次导航回MainActivity时,它将从头开始实例化片段1。发布更多的代码,这样我就会给你指明正确的方向。

回答更新2:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            finish();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}
 类似资料:
  • 鉴于下面的代码片段,为什么最后四个输出周期是相同的?我希望这些行的天数部分是4,3,2,1,而不是4,4,4,4。这是一个错误还是我遗漏了一些明显的东西?(天晚了,我很累,所以很可能是后者。)我用的是野田佳彦时间1.2.0。

  • 问题内容: 我很惊讶地发现 和 对全球成员产生了不同的影响。我想确认我的实验是正确的行为。 在第一个示例中,更改foo模块中的成员将反映在所有导入foo的代码中。但是,在以后的情况下更改该成员似乎仅影响导入该成员的文件。换句话说,使用后一种方法将为每个导入文件提供其自己的foo成员副本。 我想要的行为是可以从所有文件访问foo.x,可以从所有文件更改它,并在所有文件中反映该更改(如果愿意,则为真正

  • 假设我有以下层次结构: 1级活动(例如主菜单) 2级活动(如日历) 3级活动(如日历日) 存在以下用例: 深入人心 需要以下过渡行为: 用例1 3:我希望旧活动从左侧滑出,新活动从右侧滑入 用例2:我希望旧活动滑出到右侧,新活动滑入到左侧 我尝试了很多方法来使用来实现这一点,但没有一个组合可以正常工作...我被以下内容卡住了: 动画(这些应该正常工作): SlideFromLeftIn: Slid

  • 我是新使用Spring Webflux的人,我能够用代码将两个rest API之间的结果连接起来: 项目是单声道,孩子是单声道 这是一个好的实现,还是一个浪费反应式编程功能的阻塞性实现

  • 所以我当前处于“America/Los_Angeles”时区(PDT)中,但是当我创建一个新的moment对象并通过moment tz将其时区设置为我所在的时区('America/Los_Angeles'),如下所示: 错误的时间被返回。具体来说就是提前8个小时。所有其他时区也会出现这种情况。 我是不是从根本上误解了这是怎么工作的? 谢谢你的帮助!

  • 我有一个话题是两个消费群体消费的。题目中有10条留言。 现在我开始应用程序2(消费者组2),它正在消费相同的主题。它不在处理消息。当我描述kafka-consumer-groups(带有--group consumerGroup2)时,它令人惊讶地显示CURRENT-OFFSET=10和LOG-END-OFFSET=10。 理想情况下,这种情况不应该发生,并且kafka应该能够识别对于消费者组2没