【问题标题】:How to pass an activity value to a fragment [duplicate]如何将活动值传递给片段[重复]
【发布时间】:2021-07-06 06:18:32
【问题描述】:

当我关闭一个活动时,我希望它向另一个活动内的片段传递一个值,我该怎么做?

活动 B

            FragmentManager fragmentManager = getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

            boolean value = true;

            Bundle bundle = new Bundle();
            bundle.putBoolean("info", value);
            FragmentA fragment = new FragmentA();
            fragment.setArguments(bundle);
            fragmentTransaction.replace(R.id.idViewPager, fragment).commit();

片段 A

 @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (getArguments() != null) {

        Boolean values = getArguments().getBoolean("info");
    }
}

代码不起作用,因为它给了我一个错误

java.lang.IllegalArgumentException: No view found for id 0x7f080163

谢谢

【问题讨论】:

  • 您是否正在打开该活动以及您尝试在其中传递数据的特定片段??

标签: java android fragment


【解决方案1】:

您正在尝试访问属于另一个活动的 ViewPager。如果您想更改 Activity A 的 ViewPager 中的片段,则 Activity A 需要做出该决定。如果 Activity A 正在启动 Activity B,处理此问题的最简单方法是对 Activity B 使用 StartActivityForResult。设置结果后(在此处返回您的值),在结果侦听器接收它的 Activity A 中进行片段事务。

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-24
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 2019-01-25
    • 2020-09-24
    • 2014-12-02
    相关资源
    最近更新 更多