2011-04-18 56 views
2

我的應用程序中有一個選項卡式佈局,並且希望設置部分成爲UI中的另一個選項卡。這些設置涉及輸入存在的實體的數量/數量(例如:球的數量)。然後需要將這些數據傳送到其他選項卡,這些選項卡處理輸入數據,並相應地在相應的選項卡中處理顯示內容(比如球的數量= 3,然後在第二個選項卡中應該有3個按鈕,如果球= 1,然後只有1個按鈕,等等......)。我想避免數據發送到父活動,然後到相應的子活動,這需要整個應用程序重新啓動[startActivity()],並且個別傳輸是不可能的,因爲子活動的startActivity()會導致只顯示兒童活動內容。在這種情況下,我必須最終使用Getters和Setters。在這種情況下,我還有其他更好的方法嗎?Android:在選項卡內傳輸字符串/值,每個選項卡都有自己的活動(除了Getters-Setters)

回答

1

單身人士並不是Android應用程序的最佳選擇,因爲Dalvik VM可能會加載單身人員兩次並銷燬所有存儲的數據。

還將數據存儲在您自己的應用程序對象中不合適,因爲系統可能會在內存不足的情況下終止此對象,並且不會恢復其恢復狀態。

最好的方法,imho,通過Intent對象或getters/setteres發送數據,存儲在onPause方法中。

+0

最後,我不得不通過父母的活動來通過Intents傳遞數據。感謝您的建議。 – SamSPICA 2011-04-19 07:10:55

1

爲什麼你不能使用單例類和靜態類變量來傳遞這些數據?

+0

這是一個類似的形式使用getter和setter,不是嗎?我基本上試圖避免這種情況。還是)感謝你的建議。 :) – SamSPICA 2011-04-19 07:12:40

2

您可以嘗試onPause/onResume方法。

當選項卡更改時,活動將進入暫停狀態。我重寫onPause方法將變量保存到不同的公共類。加載變量onResume和onCreate方法。

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

    fileC.fileFrom = fileFrom; 
    fileC.fileName = fileName; 
    fileC.fileTo = fileTo; 
    fileC.Process = fileProcess; 

    Log.w("onPause", "onPause!!!!!!!!"); 
} 

@Override 
public void onResume() 
{ 
    super.onResume(); 
    if(fileC.Process != null ) 
    { 
     fileFrom = fileC.fileFrom; 
     fileTo = fileC.fileTo; 
     fileName = fileC.fileName;   
     fileProcess = fileC.Process; 
    } 
    Log.w("onResume", "onResume!!!!!!!!"); 
} 
+0

請添加一些說明文字以使其成爲有用的答案。 – 2013-02-04 13:11:06

+1

對不起,我在這裏編輯我的答案 – Mete 2013-02-06 10:36:56

相關問題