我有一个Activity和5个Fragment。在第一个Fragment中,用户输入电话号码。在最后(第五个)Fragment中,我需要显示这个电话号码,输入其他字段并将所有数据发送到服务器。对于每个Fragment,我都使用单独的Presenter(MVP)。
如何将数据从第一个Fragment传递到最后一个?
1)我不想通过所有的片段链来传递数据,因为它们不需要这个数据。
2)如果将这个数据存储在托管Activity中,则需要在Fragment类中调用((SomeActivity)getActivity()).getUserData()并将此数据传递给Presenter。
3)我选择了第三种方法。我创建了一个Singleton UserData类。这是一个简单的POJO类。我在第一个Fragment中创建UserData实例,设置所需的数据,然后在最后的Fragment中使用它来检索数据并添加缺失的字段。
但我不知道单例的做法是否正确。因为当用户进入另一个Activity时,我需要清除单例实例。是否有更好的解决方案?
编辑
我考虑过EventBus。但我需要从Fragment传递数据到Presenter。现在我在present中调用UserData.getInstance()并检索数据。我希望代码更加优雅而且正确。我想要听取更有经验的开发人员的意见,看看该使用什么方法。
如何将数据从第一个Fragment传递到最后一个?
1)我不想通过所有的片段链来传递数据,因为它们不需要这个数据。
2)如果将这个数据存储在托管Activity中,则需要在Fragment类中调用((SomeActivity)getActivity()).getUserData()并将此数据传递给Presenter。
3)我选择了第三种方法。我创建了一个Singleton UserData类。这是一个简单的POJO类。我在第一个Fragment中创建UserData实例,设置所需的数据,然后在最后的Fragment中使用它来检索数据并添加缺失的字段。
但我不知道单例的做法是否正确。因为当用户进入另一个Activity时,我需要清除单例实例。是否有更好的解决方案?
编辑
我考虑过EventBus。但我需要从Fragment传递数据到Presenter。现在我在present中调用UserData.getInstance()并检索数据。我希望代码更加优雅而且正确。我想要听取更有经验的开发人员的意见,看看该使用什么方法。
SharedPref
吗? - Rohit AryaSharedPref
,那么我需要在 presenter 中使用Context
。现在通过 Singleton,我只需调用getInstance
。没有与Context
相关的链接。 - Volodymyr