我正在构建一个android应用程序,当前用户的后续页面是可点击的,我保存点击的页面id并将其传递给打开相应的页面,
打开后,用户可以查看关注者列表、页面内的帖子等。
这是包含所有页面子级的根节点(数据库 Firebase 结构):
pageData
id1
+page_id
+page_name
+page_posts
-001
-post_id
-contents
....
userData
-001
-user_id
-user_name
....
followData
-001
-page_id
-follow_id
-user_id
在(关注者 ListActivity、帖子活动、AboutPage 活动)之间传递页面 id 的最佳方式是什么?
我读了这个https://github.com/flutter/flutter/issues/15307 https://github.com/flutter/flutter/issues/15307,它说不要使用共享首选项,我已经使用意图来传递值,并在onCreate()
,但是当活动状态发生变化时(onStart() page_id 为空),我使用底部导航菜单进行导航。
Edit找到解决方案:Jeff Gilfelt 谢谢Android 全局变量 https://stackoverflow.com/questions/1944656/android-global-variable
您不应该滥用 sharePreferences 在活动之间传递数据,这是正确的,并且您始终可以使用以下命令保存数据保存实例状态 method:
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString("page_id", pageID);
}
并从中检索它恢复实例状态 or onCreate:
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
pageID = savedInstanceState.getString("page_id");
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState!=null)
pageID = savedInstanceState.getString("page_id");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)