2017-07-20 116 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>(); 
    . . . 
}