2017-04-26 8 views
0

Für dieses Projekt verwende ich Android Studio. Ich habe eine Menge Dinge ausprobiert.Erstellt ein Objekt aus einer Klasse. Speichern Sie das Objekt. Rufen Sie das Objekt aus einer dritten Klasse

Ziel: Ich möchte eine Anwendung erstellen, die den Benutzer auffordert, Daten einzugeben. Die Daten müssen gespeichert und später auf einem anderen Bildschirm als Protokollverlauf aufgerufen werden, den der Benutzer sehen kann.

Was ich getan habe: Ich habe drei Klassen: „InputScreen“ „Logs“ „LogHistoryScreen“

Ich habe versucht, Protokolle erstellen bei InputScreen Objekt, das völlig in Ordnung funktioniert wie: Protokolle log1 = new Protokolle(); Aber ich habe keine Ahnung, wie ich das in InputScreen erstellte Objekt log1 vom LogHistoryScreen aufrufen kann. Wer hat irgendwelche Vorschläge?

Vielen Dank im Voraus.

+0

Sie könnten das Konzept der Datenbank speichern, wenn Sie diese Protokolle im Speicher speichern möchten !! –

Antwort

2

eine Liste von Protokollen in InputScreen Klasse erstellen:

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

dann ein Verfahren in InputScreen erstellen, die die Liste der Protokolle angezeigt werden kann. Etwas wie folgt aus:

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

Rufen Sie diese Methode aus LogHistoryScreen wie:

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

Vielen Dank für den Versuch, mir zu helfen. Ich habe einen Fehler bei logs.add (log1); Es hat eine rote Unterstreichung und es heißt "In List kann nicht angewendet werden". Diese ist die Methode in der Klasse InputScreen: public void Button() { Logs log1 = new Logs (150); Liste logs = new ArrayList(); logs.add (log1); } –

+0

Bitte erstellen Sie eine Liste Ihrer Logs Typ Objekt speziell. –

+0

Ahh okay, jetzt verstehe ich es. Ich danke dir sehr! –

0

Es gibt verschiedene Optionen, die Sie hier nutzen könnten. Ich werde hier einige erwähnen.

1) Durchgehen Absicht.

Übergeben Sie das Objekt als Parameter, während Sie den LogHistoryScreen über den Eingabebildschirm öffnen.

Bitte folgen Sie dem untenstehenden Code, um dies zu tun.

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

Empfangen Sie das Objekt in der onCreate() der LogHistoryScreen Aktivität

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

Die Log.class Serializable implementieren müssen.

public class Log implements Serializable 
{ 
} 

2) Bewahren Sie das Objekt in der Datenbank und es von der anderen Tätigkeit abrufen. Dies ist besonders hilfreich, wenn Sie möchten, dass die Daten in App-Sitzungen bestehen bleiben.

Ich denke, die erste Option für Sie hilfreich sein.

Verwandte Themen