当前位置: 首页 > 知识库问答 >
问题:

无法将字符串值从一个片段传递到另一个片段[重复]

昝卓
2023-03-14

我知道有很多关于这个的问题,但没有一个能解决我的问题我想把一个字符串变量从一个片段传递给另一个片段,这是我做的代码。但是我得到了错误(我会显示错误)

从我做的第一个片段

Desc_1 ldf = new Desc_1 ();
Bundle args = new Bundle();
args.putString("YourKey", "YourValue");
ldf.setArguments(args);
getFragmentManager().beginTransaction().add(R.id.frame, ldf).commit();

我喜欢的第二个片段

public class Desc_1 extends Fragment {

    public Desc_1() {
        // Required empty public constructor
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        View rootview=inflater.inflate(R.layout.fragment_desc_1,container,false);

        String value = getArguments().getString("YourKey");

        Toast.makeText(getActivity(), value,
                Toast.LENGTH_LONG).show();

        return rootview;

    }
}

我犯了这样的错误

07-27 20:31:06.386 26816-26816/com.example.jaison.newsclient E/AndroidRuntime: FATAL EXCEPTION: main
   Process: com.example.jaison.newsclient, PID: 26816
   java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference
       at layout.Desc_1.onCreateView(Desc_1.java:34)
       at android.support.v4.app.Fragment.performCreateView(Fragment.java:2239)
       at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1332)
       at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1574)
       at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1641)
       at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:794)
       at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2415)
       at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2200)
       at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2153)
       at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2063)
       at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:725)
       at android.os.Handler.handleCallback(Handler.java:815)
       at android.os.Handler.dispatchMessage(Handler.java:104)
       at android.os.Looper.loop(Looper.java:207)
       at android.app.ActivityThread.main(ActivityThread.java:5769)
       at java.lang.reflect.Method.invoke(Native Method)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:861)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:751)

共有3个答案

岳毅
2023-03-14

请检查此答案,以在片段之间传递值

https://stackoverflow.com/a/27626004/5065318

孔才
2023-03-14

只需检查片段中的getArguments()是否不为null,然后在大括号中添加代码

示例:

Bundle bundle_arguments = getArguments();
if(bundle_arguments != null) {
    // your code 
} 
爱刚捷
2023-03-14

试试这个:

Bundle bundle = getArguments();
if(bundle != null)
    String value = bundle.getString("YourKey");
 类似资料:
  • 这是我完整的logcat: 在Android.support.v4.app.backStackRecord.doaddop(backStackRecord.java:414)在Android.support.v4.app.backStackRecord.replace(backStackRecord.java:449)在Android.support.v4.app.backStackRecord.

  • 我找到了这段代码来将数据从一个片段传递到另一个片段: 片段1: 片段2: 但我不想改变片段。所以我拆了一部分。但这不起作用。这里是我的代码: 片段1: 片段2: 我必须使用我在网上找到的代码还是我的版本也能工作?当我打开第二个片段时会出现这个错误: E/AndroidRuntime:致命异常:主进程:com.example.rexan_snerficonquiz.fragment_score.on

  • 我在一个片段中有一个复选框列表(我们称之为FragmentA),我有一个包含两个片段(FragmentB和C)的活动。如果选中一个复选框,我想在片段C中显示一条消息,说明选中了特定的复选框。我需要帮助,因为我不知道如何将(isChecked)从片段A传递到片段C。 FragmentA.java 分数不影响碎片C。 包含片段 B 和 C 的活动 片段C 活动

  • 在FragmentOne.class扩展android.support.v4.app.

  • 编辑问题以包括所需的行为、特定的问题或错误,以及重现问题所需的最短代码。这将帮助其他人回答这个问题。 嗨,我知道这个问题有答案。我已经尝试了所有它们,但在我的应用程序中不起作用。我有两个片段(登录和密码),我想将电子邮件和手机号码从登录片段传递到密码片段。我尝试了很多,但我无法得到解决方案。 请任何人帮助我。 登录片段: 密码碎片: