gpt4 book ai didi

java - 我可以结束一项 Activity 并从 Fragment Switch Case 开始一项新 Activity 吗?

转载 作者:行者123 更新时间:2023-12-01 16:28:48 24 4
gpt4 key购买 nike

我在 android studio 工作。我有一个底部导航 fragment 。对于最后一个开关案例,我需要一个按钮来导航到 HomeActivity(主屏幕)。我尝试过:

...

  case SUMMARY:
navNextText.setText(R.string.end);
navNextImageView.setOnClickListener(v -> navigateHome());
navNextText.setOnClickListener(v -> navigateHome());
break;

default:
Log.w(TAG, "Executing a default case in navigateNext(). CTX: " + contextState.toString());
}

private void navigateHome() {
Objects.requireNonNull(getActivity()).finish();
Intent in = new Intent(getActivity(), HomeActivity.class);
startActivity(in);
}

这在一定程度上是有效的。我可以导航回家,但是当我单击返回导航 fragment 所在的 Activity 时,导航栏会恢复到更改 Activity 之前的位置。我还尝试将 onStop()onDestroy 添加到 private void navigatorHome,但这似乎没有任何作用。我只是想知道从 fragment 关闭 Activity 并开始新 Activity 的更干净的方法是什么。

最佳答案

如果你想从backstack中删除当前的activity,只需添加finish()当您处于 fragment 中时,请使用 requireActivity().finish()

此外,为了确保返回堆栈中没有 Activity ,您可以使用下面的 Intent 标志删除所有 Activity

 private void navigateHome() {
Objects.requireNonNull(getActivity()).finish();
Intent in = new Intent(getActivity(), HomeActivity.class);
in.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // <<<<< flag
startActivity(in);
requireActivity().finish(); // <<< finish the current activity
}


关于java - 我可以结束一项 Activity 并从 Fragment Switch Case 开始一项新 Activity 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62090079/

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