2017-04-26 74 views
0

對於此項目,我正在使用Android Studio。 我試了一堆東西。從一個類創建對象。保存該對象。從第三個類中調用對象

目標: 我想創建一個應用程序,要求用戶輸入數據。數據需要保存,稍後在另一個屏幕上作爲用戶可以看到的日誌歷史來調用。

我做了什麼: 我有三類:

我試圖創建日誌「InputScreen」,「日誌」,「LogHistoryScreen」在InputScreen對象,它工作完全正常,如:記錄LOG1 =新日誌();但我不知道如何從LogHistoryScreen調用InputScreen中創建的對象log1。任何人有任何建議?

在此先感謝。

+0

如果你想將這些日誌存儲在內存中,你可以使用數據庫存儲的概念! –

回答

2

在InputScreen類創建日誌列表:

List<Log> logs = new ArrayList(); 
logs.add(log1); 
// same for next logs. 

然後創建InputScreen的方法將返回日誌列表。事情是這樣的:

public List<Log> getAllLogs() { 
    return logs; 
} 

呼叫從LogHistoryScreen這種方法,如:

InputScreen inputScreen = new InputScreen(); 
List<Log> logs = inputScreen.getAllLogs(); 
+0

謝謝你試圖幫助我。 我在logs.add(log1)處得到一個錯誤;它有一個紅色的下劃線,它說「在列表中不能應用」。 這是InputScreen類中的方法: public void buttonPressed(){ Logs log1 = new Logs(150); List logs = new ArrayList(); logs.add(log1); } –

+0

請專門創建您的日誌類型對象列表。 –

+0

啊,好了,現在我明白了。非常感謝! –

0

有,你可以在這裏使用的各種選項。我會在這裏提到一些。

1)傳遞意圖。

當您從InputScreen打開LogHistoryScreen時,將對象作爲參數傳遞。

請按照下面的代碼來做到這一點。

Intent intent = new Intent(this, LogHistoryScreen.class); 
intent.putExtra("Key", yourObject); 
startActivity(intent); 

接收在OnCreate()的對象的LogHistoryScreen活動

Log log = (Log)getIntent().getSerializableExtra("Key"); 

的Log.class必須實現Serializable的。

public class Log implements Serializable 
{ 
} 

2)存儲對象在數據庫,並從其他活動獲取它。如果您需要數據在應用程序會話中持續存在,這特別有用。

我認爲第一個選項對您更有幫助。

相關問題