android - 将数据从一个 fragment 传递到另一个 fragment

标签 android android-intent android-fragments

我有一个包含两个 fragment 的 Activity,我需要将一个字符串从 FragmentA 传递到 FragmentB。

为了传递数据,我在 FragmentA 中有这个:

    Intent intent = new Intent(getActivity(), FragmentB.class);
    intent.putExtra("name", "Mark");
    startActivity(intent);

为了获取数据,我在 FragmentB 中做了这个

    Intent intent = getActivity().getIntent();
    Bundle b = intent.getExtras();

    if(b!=null)
    {
        String name =(String) b.get("name");
        nameTextView.setText(name);
    }

但这行不通。是否有一种特定的方法可以将字符串从一个 fragment 传递到另一个 fragment ?

最佳答案

  1. 如果 fragment 由相同的 Activity 托管- 您不能将 Intent 转换到 Fragment。 Fragment 作为 Activity 的一部分,它本身不是 Activity。因此,要在 fragment 之间共享一个字符串,您可以在 Activity 中声明一个静态字符串。从 fragment A 访问该字符串以设置值并获取 fragment B 中的字符串值。
  2. 两个 fragment 都由不同的 Activity 托管- 然后,您可以使用 putExtra 将字符串从 Activity A 的 Fragment A 传递到 Activity B。将该字符串存储在 Activity B 中并在 Fragment B 中使用它。

关于android - 将数据从一个 fragment 传递到另一个 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22568339/

相关文章:

Android Intent 打开图库在 KitKat (4.4) 上不起作用

android - 从广播接收器启动 Activity

android - 如何检测电话何时被接听或拒绝

Android searchview隐藏键盘但不失去焦点

android - 首选项 fragment setOnPreferenceClickListener 不起作用

Android:从内容 URI 获取文件 URI?

java - 如何在 Android 中以最佳方式调整位图大小?

android - Android Package Server 上的 ReactNative 未运行

android - Firebase 身份验证 - 未处理的异常 : [firebase_auth/admin-restricted-operation] This operation is restricted to administrators only

android - recyclerview header,从Activity/Fragment中的header访问对象