gpt4 book ai didi

android - 从 Activity 到 Fragment 的 Backpress

转载 作者:搜寻专家 更新时间:2023-11-01 07:42:15 26 4
gpt4 key购买 nike

我有一个 BaseActivity,它具有以下流程,FragmentA -> Fragment B ->FinalActivity .现在,我希望通过单击后退按钮从 FinalActivityFragmentAbackpress

BaseActivity 我调用 FragmentA 就像,

Fragment selectedFragment = FragmentA .newInstance();
FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.container_fragment, selectedFragment);
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
transaction.addToBackStack("Some String");
transaction.commit();

FragmentA 我调用 FragmentB 就像,

Fragment selectedFragment = FragmentB.newInstance();
FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.container_fragment, selectedFragment);
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
transaction.addToBackStack("Some String");
transaction.commit();

FragmentBFinalActivity我是这样调用的,

startActivityForResult(FinalActivity.newIntent(getActivity()), 1);

现在从 FinalActivity 后退按钮我想显示 FragmentA

帮我导航。

最佳答案

执行此操作的正确方法是为 Activity 设置一个结果,并且在结束 Activity 时将信息传递给 FragmentB。在您的 onBackPressed() 方法中,您可以添加:

Intent resultIntent = new Intent();
String dataString = "Some info you might want to return to the fragment...";
resultIntent.setData(Uri.parse(dataString));
setResult(RESULT_OK, resultIntent);
finish();

然后,在您的 FragmentB 中,您必须覆盖 onActivityResult() 方法:

public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == request_Code) {
if (resultCode == RESULT_OK) {
//here you can pop the FragmentB
}
}
}

以上代码会结束FinalActivity -> 并将RESULT_OK传递给onActivityResult()方法(会在FragmentB中调用) ,然后弹出 FragmentB,以显示 FragmentA。

编辑:请注意,您需要 startActivityForResult() 中的 requestCode 与 onActivityResult() 中的相同,否则 fragment 将不知道您要获取哪个 Activity。如果需要,您可以添加静态全局值。

EDIT2:现在我看到了,在你的代码中你有类似的东西:

transaction.addToBackStack("Some String");

这个“一些字符串”实际上应该是 Fragment.getName(),以便后台堆栈跟踪其中有哪些 fragment 。

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

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