2017-07-20 71 views
0

我在Android中通过单击放置在另一活动(UserActivity)中的按钮调用Master/Detail活动。奇怪的是,如果我点击主/细节活动中的后退按钮,我将失去UserActivity状态下的数据。它想要再次执行onCreate方法。点击后退按钮后,主/细节流数据消失

如果我点击LoginActivity中的登录按钮,我将其重定向到UserActivitiy,然后返回“智能手机”的后退按钮,我输入的用户名和密码仍然存在。所以我不会丢失数据。

智能手机的后退按钮和程序顶部的后退按钮有区别吗?我现在有点困惑,我知道如何坚持活动的状态。但是我的问题是,为什么我在一边和另一边都没有这种行为。

+0

请分享您的代码。您是否使用过包含'DummyContent.java'文件的模板以及所有这些?我最近第一次使用它,我很遗憾在开始编程之前没有仔细看过代码。代码真的没有记录下来,你真的需要花时间来弄清楚什么数据通过哪里和保留什么 – user2875404

+0

确实我使用了模板。我认为它完成了这个观点,因此我必须以某种方式坚持数据。 – Sully

回答

0

万一你会留下这样的问题,不添加代码:

什么可能会帮助正在检查已经存在的项目的数量。当我遇到这个问题时,onStart()得到如此迅速的调用,以至于我觉得Activity已经丢失了数据。实际上它有数据,但是调用onCreate/onStart(我在片段中)使它无效。

我这样做是为了检查是否需要加载列表中的项目。如果存在,它会调用一个包含旧onCreate/onStart所做的操作的方法。如果没有必要加载数据,它只会跳过这一步,愉快地接受“旧”数据。

@Override 
public void onStart() { 
super.onStart(); 

    if(DummyContent.ITEMS.size()<3){ 
     initializeApp(); 
    } 

} 

void initializeApp(){ 
    videoTitles=new ArrayList<String>(); 
    videoUrls=new ArrayList<String>(); 
    . . . 
}