如何将活动值传递给片段[重复]

Posted

技术标签:

【中文标题】如何将活动值传递给片段[重复]【英文标题】: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

谢谢

【问题讨论】:

您是否正在打开该活动以及您尝试在其中传递数据的特定片段?? 【参考方案1】:

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

希望对您有所帮助。

【讨论】:

以上是关于如何将活动值传递给片段[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何将值从片段/活动传递到 xml?

Android Java将变量从片段传递到活动[重复]

如何在活动和浏览器片段之间传递值? [复制]

如何将editText值传递给viewModel和Livedata(Kotlin)

如何在 Fragment 之间传递值

Kotlin - 如何将空值传递给片段 newInstance 方法?