我有以下活动:
LoginActivity
MainActivity
ProfileActivity
MainActivity包含4个片段:PersonalFragment,PasswordFragment,SettingsFragment和FacilityFragment。
在PersonalFragment中,有4个按钮菜单,其中之一直接指向ProfileActivity。
ProfileActivity包含3个片段:ProfileDetailFragment,FamilyFragment和EducationFragment。
这是我的应用程序的过程:
当我启动LoginActivity并成功登录时,服务器向我发送了令牌以访问Web服务中的数据。我已经拿到了令牌。然后,我想获取所有要从API提取的数据,并将其显示在ProfileDetailFragment中。该过程需要我在MainActivity中单击PersonalFragment,然后将打开ProfileActivity,它首先将显示ProfileDetailFragment。
我尝试过的事情:
将令牌从LoginActivity传递到MainActivity并与Toast.makeText显示。这成功了
将我存储在MainActivity中新变量中的令牌结果传递给这样:
Bundle bundle = new Bundle();
bundle.putString("token", token);
ProfileDetailFragment fragobj = new Fragmentclass();
fragobj.setArguments(bundle);
和ProfileDetailFragment中的
String strtext = getArguments().getString("token");
但仍然返回null。
对我来说有什么解决方法吗:(。仅供参考:我已经阅读了前面的问题和文档,但仍然返回null。谢谢
答案 0 :(得分:0)
成功登录应用程序后,此时只需将令牌存储在SharedPreference
中,您就可以在所有屏幕中使用相同的令牌,因此无需传递Intent
。注销表单应用程序之前,请记住清除首选项。
答案 1 :(得分:0)
对于要存储在缓存中的内容,可以轻松进行检索,对于大多数屏幕,您可以使用SharedPreferences
对于两次活动之间的数据传递,我建议您使用Intent
对于需要来自其他来源的数据的片段,可以使用Bundle