【问题标题】:how to pass object from one fragment to another?如何将对象从一个片段传递到另一个片段?
【发布时间】:2018-06-28 12:45:07
【问题描述】:

分片MoneyTransferFragment的代码......

MoneyTransferFragment moneyTransferFragment = new MoneyTransferFragment();
                    Bundle b = new Bundle();
                    b.putSerializable("UserValidateObject",userValidate);
                    b.putSerializable("BeneficiaryObject",beneficiaryDetails);
                    moneyTransferFragment.setArguments(b);

我想要检索该对象的第二个片段的代码......

Bundle b = getArguments();
    userValidate =(UserValidate) b.getSerializable("UserValidateObject");
    Log.i("getuserValidate",userValidate.toString());

在日志中显示错误............

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference

【问题讨论】:

标签: android android-fragments nullpointerexception


【解决方案1】:

更改您的代码 发件人:

Bundle b = getArguments();
userValidate =(UserValidate) b.getSerializable("UserValidateObject");
Log.i("getuserValidate",userValidate.toString());

收件人:

userValidate=(UserValidate)getArguments().getSerializable("UserValidateObject");
Log.i("getuserValidate",userValidate.toString());

活动作品:

    (YourObject)getIntent().getSerializableExtra("keyname");

片段作品:

 (YourObject)getArguments().getSerializable("keyname");

【讨论】:

  • public class UserValidate implements Serializable{ //你的方法和变量 }
  • 尝试在空对象引用上调用虚拟方法“java.io.Serializable android.os.Bundle.getSerializable(java.lang.String)”
  • 但第二个片段在另一个活动中,不是同一个活动
  • 你能解释一下你是怎么做这一切的吗?表示从哪个活动或片段到下一个活动/片段
  • Activity A 包含 frgmaentA,Activity B 包含 fragmentB 我想将对象从 frgmaentA 传递到 fragmentB
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-12
  • 2020-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多