我想设计一个基于Feed的应用程序,其设计类似于Facebook,Twitter或Instagram。在主屏幕中,我有一个FeedActivity,它包含一个ViewPager,用于容纳3-4个片段(表示为标签)
{{1}}
当用户触摸帖子(列在ListOfItemsFragment中)时,我想打开另一个活动(或ViewPager中的另一个片段)。如果我打开这个新活动(PostDetailActivity)并且当我返回FeedActivity时,ListOfItemsFragment中的所有数据都会丢失,因为再次创建了FeedActivity。
我应该为帖子详细信息创建一个新的活动,还是应该向FeedActivity添加另一个独立于ViewPager的片段(我希望这个片段是一个弹出窗口,而不是标签的一部分)。
我如何支持这种行为?
感谢。
答案 0 :(得分:1)
每次按下后,都会创建新的Activity实例。充满数据的数据会消失。只需在清单文件中键入以下行。
<activity android:name=".MainActivity"
android:launchMode="singleTop">
</activity>
答案 1 :(得分:0)
从不同的角度看问题,sqlite是一个解决方案。
另外,即使你的应用程序被彻底销毁并且必须重新启动,存储状态还有额外的好处。请参阅Ada Wikibook here。
答案 2 :(得分:0)
只需覆盖此方法并存储您想要再次显示的数据
@Override
public void onSaveInstanceState(Bundle outState) {
outState.putInt("intTag", intValue); // Save all the value that you want to retain
super.onSaveInstanceState(outState, outPersistentState);
}
并在你的onCreate中检查savedInstanceState是否为null而不是获取值并更新你的
if(savedInstanceState != null) {
int data = savedInstanceState.getInt("intTag");
// Retrieve all the data you have settled there
}